2024/05 20

[Unreal5] UObject와 Reflection

https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Objects/ 오브젝트기본 게임플레이 요소인 Actor 와 Object 에 대한 설명입니다.docs.unrealengine.com UObjectUObject를 상속 받으면 Reflection System에 의해 UHD가 실행되어 Uclass 객체를 만들어주고 Uclass 객체 내부에 CDO라는 객체 샘플 사본을 하나 만들어 두 개가  준비가 되게하여 메모리를 관리한다. UObject는 언리얼 엔진의 대부분의 객체 유형의 기본 클래스로 언리얼의 모든 오브젝트는 UObject를 상속받는다. Uobject를 상속받은 오브젝트를 객체..

Unreal 2024.05.22

[C++] 포인터와 참조

포인터포인터는 메모리 주소를 저장하는 변수로 변수의 주소를 갖는 하나의 타입이다. 포인터의 운영체제의 크기에 따라 4바이트 혹은 8바이트로 나뉜다.포인터 기본포인터는 타입 뒤에 *을 붙여 선언하고 &를 사용하여 주소를 추출해 포인터 변수에 담는다.포인터 변수의 원본 값을 변경하기 위해서는 *을 붙여 변수 값을 수정할 수 있다. 이때 *을 포탈이라고 생각하고 주소를 가지고 있는 포인터 변수의 주소를 이용해 원본데이터로 접근하여 데이터를 변경해 준다. int num = 10; // 정수 변수 선언 및 초기화 int *ptr; // 포인터 변수 선언 ptr = # // num 변수의 주소를 포인터에 할당 // 포인터를 통해 num 변수의 값을 출력 std::cout 포인터 함수포인..

VisualStudio/C++ 2024.05.13

[OpenGL] Viewport와 Scissor Box

WC는 다양한 디바이스의 디스플레이 해상도와 무관하게 그림을 표현할 수 있습니다.NDC는 해상도에 맞춰서 일일이 그림을 만드는 작업을 하는 것보다는 디바이스 해상도를 무시해 버리고 일단 마이너스 1에서 플러스 1까지 가는 어떤 그림을 만드는 것이다.OpenGL의 뷰포트(Viewport)는 OpenGL의 출력 영역을 나타낸다. 보통은 window전체를 사용하지만 window 내의 직사각형 영역을 미니맵처럼 따로 설정 가능 합니다. 즉 렌더링 된 이미지가 표시될 프레임버퍼의 영역을 정의합니다.뷰포트는 윈도 내에서 직사각형 영역이 되어야 되기 때문에 정수좌표계를 가져야 합니다. 그래서 정수 좌표계를 갖는 wc좌표계를 갖게 됩니다. 즉 프레임버퍼의 영역은 WC(Window Coordinate)를 사용하며 어떠한..

OpenGL 2024.05.10

[AI] 임베딩(Embedding)

임베딩기법은 자연어 처리를 위한 기법중 하나로 머신러닝 알고리즘을 쓸 때 머신러닝 알고리즘은 어떤 문자형 데이터를 처리할 수 없기 때문에 인티저 인코딩이나 원핫 인코딩 같은 형태로 벡터 표현 형태로 그 텍스트 데이터를 변경을 수행해 주었어야만 했다. 하지만 주로 사용하는 원핫 인코딩을 사용할 경우 여러 가지 문제점들이 있게된다. 첫 번째로는 데이터 표현형태가 Sparse(희박하다)해진다는 문제점이 있다. 만약 10000개의 단어가 들어있을 때 1000개의 단어에 9999에는 0이들어있고 하나의데이터에 1이 들어있는 문제가있다. 이런 문제를 해결하기 위해 Sparse한 one-hot encoding의 데이터 표현을 Dense(빽빽한)한 표현 형태로 변환하는 기법이다. 이를 위해서 원본 데이터에 Dense한..

AI 2024.05.09

[OpenGL] orthographic프로젝션와 Perspective프로젝션

Orthographic Projection (직교 투영):Orthographic projection은 객체를 카메라에서 동등한 비율로 투영합니다. 즉, 원근감이 없는 투영입니다.이는 3D 객체를 2D 화면에 표시할 때 크기만 변경되고 모양은 유지되는 것을 의미합니다.이는 일반적으로 2D 렌더링, CAD 응용 프로그램 또는 게임에서의 2D 스프라이트와 같은 경우에 유용합니다.Orthographic projection 행렬을 만들 때는 glOrtho() 함수를 사용합니다.void glOrthoRH(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal);void glOrthoLH(GLdoubl..

OpenGL 2024.05.08

[AI] AI 용어정리

프롬프트 - 특정 작업을 수행하도록 생성형 AI에 요청하는 자연어 텍스트입니다.NLP -  자연어 처리(NLP)는 인간의 언어를 해석, 조작 및 이해하는 능력을 컴퓨터에 부여하는 기계 학습 기술입니다. RAG (Retrieval-Augmented Generation) - 랭체인을 이용하여 LLM을 학습시키는 방식으로 LLM의 재학습 없이 그냥 외부 텍스트를 프롬프트 단에 묶어줘서 결과를 도출하는 것 할루시네이션 - AI 모델이 정확하지 않거나 사실이 아닌 조작된 정보를 생성하는 것을 의미합니다. 임베딩(Embedding) - 복잡한 지식 영역을 이해하는 데 사용하는 실제 객체를 수치로 표현한 것입니다.vectorStores - 이미 임베딩된 결과값을 저장하는 용도one-hot Encoding - 표현하고..

AI 2024.05.08

[AI] 랭체인(LangChain) 개념 및 사용방법

랭체인(LangChain) 라이브러리는 자연어 처리(NLP)와 관련된 다양한 기능을 제공하는 파이썬 라이브러리입니다. 이 라이브러리의 주요 목적은 대화형 AI 시스템을 구축하고 연구하는 데 있어 유용한 도구를 제공하는 것입니다. 랭체인은 LLM모델을 직접적으로 만드는 것 이 아닌 이미 만들어져있는 LLM모델을 API등으로 연동하여 실제 어플리케이션으로 묶어주는 역활을 수행한다.랭체인 특징1. 챗봇 구축: LangChain은 챗봇과 대화형 AI 시스템을 구축하기 위한 도구를 제공합니다. 이를 통해 사용자는 자신만의 챗봇을 쉽게 만들 수 있습니다. 2. 다양한 자연어처리(NLP) 기능: 이 라이브러리는 텍스트 생성, 요약, 번역과 같은 다양한 자연어 처리 기능을 포함하고 있습니다. 3. 플러그 앤 플레이 아..

AI 2024.05.08

[OpenGL] LookAt Approach

카메라를 설정할 때 필요한 월드 프레임에서의 카메라 포지션(p 좌표), 유닛 벡터 (n 좌표), view up vector(v좌표)n좌표와 v좌표를 설정하는 View Transform 설정에 대한 직접 계산을 보다 직관적인 방법으로 쉽게 계산하기 위한 대안으로 나온 것 이 LookAt Approach 방법이다. OpenGL의 LookAt Approach는 3D 그래픽스에서 카메라의 위치와 방향을 지정하는 데 사용되는 방법입니다. 이 방법은 보통 OpenGL의 카메라 시스템을 설정하는 데 쓰이며, 보다 정확하게는 시점 변환(Transformations)을 수행하기 위해 사용됩니다.OpenGL에서는 세 가지 주요 변환을 사용하여 객체를 표시합니다: 이동(Translation), 회전(Rotation), 및 ..

OpenGL 2024.05.07

[C#] AES128 암호화

AES는 128 비트 블록 크기를 가지며, 128, 192 또는 256 비트의 키를 사용할 수 있습니다. AES는 라운드라는 여러 단계를 거쳐 데이터를 암호화하고 복호화합니다. 각 라운드에서는 다양한 변환 과정을 거쳐 데이터가 혼합되고 변환됩니다.AES의 특징은 다음과 같습니다:안전성: AES는 공격에 강한 구조를 갖고 있습니다. 충분한 키 크기와 충분한 라운드 수를 사용하여 안전한 암호화를 제공합니다.효율성: AES는 효율적인 구현이 가능하며, 속도와 리소스 사용을 최적화하여 빠른 암호화 및 복호화를 제공합니다.대칭 키 알고리즘: AES는 대칭 키 알고리즘입니다. 즉, 암호화 및 복호화에 동일한 키가 사용됩니다.표준화: AES는 미국 국가 표준 기술 연구소(NIST)에 의해 표준으로 채택되었습니다.AE..

VisualStudio/C# 2024.05.07

[OpenGL] 카메라와 뷰잉(viewing)

카메라와 뷰잉컴퓨터 그래픽스에서는 카메라를 카메라라고 직설적으로 표현하지 않고 뷰라고 표현한다. 즉 뷰잉은 카메라를 어떻게 설정할 것이냐이다.카메라 == 뷰잉좌표 종류Object frame - 물체를 디자인하는 프레임 좌표 World frame(q world) - 모든 것들을 배치하기 위한 월드 프레임 좌표View frame - 카메라가 작동하는 수학적으로 카메라를 시뮬레이션 하기 위한 뷰 프레임OpenGL 관점과 순서model transform - world frame상에서 어떤 물체를 원하는 위치로 이동하는 과정을 뜻 하며 즉 object를 world frame 기준으로 회전하거나 이동시킨다. Object frame -> World frame view transform - 배치되어 있는 모든 오브젝트..

OpenGL 2024.05.03