일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ASW(Application SpaceWarp)
- Cartoon Rendering
- working set
- 프로그래밍 기초
- Private Bytes
- AppSW
- URP
- Cell Look
- C언어
- Windows Build
- OculusMotionVectorPass
- Virtual Byte
- 메모리 누수
- Three(Two) Tone Shading
- 벡터
- 작업 집합
- Toon Shader
- Specular
- VR
- 가상 바이트
- Cell Shader
- 3d
- Rim Light
- URP로 변경
- 게임 수학
- ColorGradingLutPass
- 개인 바이트
- Today
- Total
목록전체 글 (258)
WinCNT
(참고 서적) WINDOWS VIA C/C++의 3장 커널 오브젝트 커널 오브젝트란? WinObj 커널 오브젝트는 커널에 의해 할당된 간단한 메모리 블럭이다 커널 오브젝트의 데이터 구조체는 커널에서만 접근이 가능하기 때문에, 응용 프로그램에서 데이터 구조체가 저장되어 있는 메모리 위치를 직접 접근하여 그 내용을 변경하는 것은 불가능하다 MS사는 커널 오브젝트 구조체가 일관되게 유지될 수 있도록 제약 사항을 의도적으로 만들었다 (운영 체제를 견고하게 하기 위해) 직접 접근이 불가능한 대신 API를 통해 핸들 "값"을 통해서 제어할 수 있다 (유저는 핸들 값을 변수에 저장해 놓고 사용한다) 운영핸들 값은 프로세스 별로 독립적으로 유지한다 만일 프로세스간 통신 등을 통해서 다른 프로세스에 핸들 값을 전달했다고..
게임에서의 시스템 프로그래밍 기획 컨셉 기획자 - 세계관 등등 눈에 보임, 컨셉 담당 아트와 연관이 있음 시스템 기획자 - ?? 문서는 나오지만 눈에 보...이나? 컨텐츠 기획자 - 컨셉과 시스템을 아우르는 기획자, 재미를 추구하거나 잘 팔리는 아이템을 만들거나 한다 게임에서의 시스템 프로그래머는 시스템 기획을 가지고 기반을 만드는 작업을 한다! 퀘스트는 전형적인 컨텐츠 예시 용사가 초보자의 샘에서 슬라임을 10마리 잡으면 아이템과 경험치를 얻는다는 퀘스트 위의 시점은 플레이 기획 하지만 초보자의 샘(이동 시스템), 슬라임(AI 시스템), 경험치 획득(스탯 시스템), 아이템 획득(아이템 시스템) 등등 보이지 않는 시스템에 대한 기획도 필요하다 이러한 시스템에 대한 조합으로 퀘스트, 즉 컨텐츠가 만들어진다..
A* 알고리즘 다익스트라 알고리즘을 확장하여 만들어진 경로 탐색 알고리즘이다 추정치를 안 쓰는 알고리즘 다익스트라 알고리즘으로 탐색하다가 지정한 목적지를 탐색했을 경우 탐색을 종료한다 메모리는 다익스트라보다 더욱 쓰지만 탐색 횟수는 줄어든다 하지만 탐색한 경로가 정말로 최단 경로인지는 보장할 수 없다 추정치를 쓰는 알고리즘 다음 노드로 이동하는 비용을 휴리스틱이라는 추정치로 두고 탐색하는 방법이다 현재의 비용 + 휴리스틱 비용으로 탐색한다 자주 사용하는 휴리스틱 함수는 휴리스틱 유클리드 맨하탄이다 SSS
복잡한 UI 구성을 위해 위젯 블루프린트(Widget Blueprint) 에디터 제공 Button,CheckBox,ProgressBar,ListView,TreeView 등 제공하므로 정보 표현과 상호작용 쉬움 컨텐츠 브라우져 -> 오른쪽클릭 -> 유져인터페이스 -> 위젯블루프린트 로 어셋생성 블루프린트이므로 그래프에서 스크립팅 가능 전체화면은 Viewport 로 사용가능 ( 예 플레이어 게임정보 HUD , 게임메뉴) 월드에서는 WidgetComponent로 표현가능 ( 예, 몬스터 머리위의 체력바 ) UMG의 Viewport 활용 노드 설명 CreateWidget 위젯 인스턴스 생성 AddtoViewport 뷰포트에 추가하기 RemoveFromParent 위젯을 부모에서 제거 RemoveAllWidget..
물리 중학교 1학년 수준의 물리만 알아도 기본적인 것은 가능하다 원과 원 충돌이 가장 간단하게 계산된다 마찰과 탄성을 생각하면 점점 어려워짐 물리의 기초는 고전 역학 부분 = 운동 에너지와 운동에 대한 것 등등 게임 엔진에서의 물리 엔진은 독특하다 그래픽스 엔진과 마찬가지로 어디까지나 근사치이며 모델링의 결과물임 하지만 우리의 눈 또한 마찬가지로 근사치일 뿐 (2가지 조금 다른 2차원 이미지로 3차원을 인식하는 등) PBR이나 광원을 보존하는 것도 상당히 현실과 비슷하긴 하지만 근사치이다 또한 Loop 안에서 매 프레임당 이산된 처리의 특성을 가진다 1프레임 = 약 0.016초(인간의 인지의 한계는 약 0.1초) 이산된 연산(!)이라는 부분에서 물리 엔진의 태생적인 한계가 존재한다 Collision De..
그레이 스케일 흑백이란? 명도 값만 존재함 RGB값이 같으면 흑백이 된다? D2D도 기반은 D3D의 쉐이더라고 하니 쉐이더를 중간에서 커스텀을 하면 속도 저하 없이 그레이 스케일도 구현할 수 있을 것이다 텍스처 샘플링 텍셀 - 텍스트 픽셀의 합성어 텍스처로부터 샘플링해서 2차원 이미지를 불러옴 float4 = RBGA 자료형(쉐이더의 자료형) 쉐이더에서는 0~255가 0~1의 값으로 바뀜 스위즐링 rrra, ggga, bbba 등으로 rbg값을 같게 해주면 색이 흑백이 된다 근데 미묘하게 밝기 값이 다르다 그럼 어떤 것을 써야 할까? 아니 어떠한 비율로 섞어야 가장 사람의 눈에 자연스러운 흑백이 될까? 이에 대한 것을 그레이 스케일이라고 한다 눈은 녹색 계열에 가장 민감하던가, 블루가 가장 민감도가 떨어..
참고 사이트 https://yabmoons.tistory.com/364 [ 다익스트라 알고리즘 ] 개념과 구현방법 (C++) 그래프 알고리즘에서 '최소 비용'을 구해야 하는 경우 사용할 수 있는 대표적인 알고리즘으로는 '다익스트라 알고리즘' , '벨만-포드 알고리즘' , ' 플로이드 워샬 알고리즘' 이 있다. 이번 글에서 yabmoons.tistory.com 다익스트라 (Dijkstra) 알고리즘 출발 정점부터 각 정점까지의 거리(비용)을 계산한 테이블이 필요하다 초기값은 무한대(...)나 음수를 두면 된다 방문하는 순서는 BFS와 같다 하지만 다익스트라는 큐가 아니라 우선순위 큐를 사용한다 (비용이 적은 노드를 먼저 뽑을 수 있게) 또한 방문한 노드나 그리드의 경로의 최소 비용을 알고 있는 테이블 등도..
BFS(너비 우선 탐색) 그래프를 탐색할 때, 깊이를 우선해서 탐색하면 깊이 우선 탐색(DFS, Depth First Search), 넓이를 우선해서 탐색하면 너비 우선 탐색(BFS, Breadth First Search)이라고 한다 BFS와 DFS의 차이 참고 사이트 너비 우선 탐색(BFS) 깊이 우선 탐색(DFS) 사용처 최단 경로 찾기 미궁 자동 생성 BFS의 설계와 구현 인접한 정점(Vertex)에 대한 방문 규칙이 필요하다 그리드 방식에서 인접한 상하좌우를 방문할 것인지, 대각선도 포함할 것인지 등등 인접 정점들을 인덱스로 관리하면 셀(배열) 방식 인접 정점들을 리스트로 관리하면 노드 방식 어떠한 구조로 되어 있는가 = 자료 구조 어떻게 찾아가는가 = 알고리즘 BFS는 최단 거리를 찾을 때 사용..
보호되어 있는 글입니다.
셀과 노드 자료구조의 기반은 셀이거나, 노드 여러 자료 구조도 결국은 셀이나, 노드를 기반으로 만들었다고 볼 수 있다 cell = 데이터의 집합 = 배열 구조체, 배열... 선형적 인덱스로 찾기 노드 = 포인터로 연결 = 리스트 메모리(물리적)으로는 선형적이 아니지만 논리적으로는 선형적일 수도 있음 포인터로 찾기 트리 힙은 셀을 사용(효율 문제) 이진 트리 등은 노드 사용(효율 문제) 그래프 연관 관계를 만들면 그것이 그래프이다 서로 연결이 되서 탐색할 수 있다 (참고로 트리도 그래프의 일종) 그래프 기반의 탐색 그래프 기반의 탐색 ⇒ 경로 탐색 경로 탐색은 정점과 정점 사이의 경로를 탐색하는 것이므로 정렬은 하지 않는다 여태까지의 알고리즘은 보통 값을 탐색하는 것이었다 그러기 위해 삽입, 삭제, 탐색 ..