분류 전체보기(110)
-
Convert Voxel World To Planet
Voxel 세계를 Planet화 하려면? 1. Torus Function을 이용한 정점 변환 Is a round Minecraft world possible? 위 영상에서는 Voxel Planet을 표현하기 위해 복셀을 라운딩화 할 수 밖에 없는 이유를 설명한다. How to make the Minecraft world look spherical 그리고 위 영상에서는 Voxel 세계를 구면화 하는 방법을 제시하고 있다.영상을 보면 구면화를 위해 torus 방정식을 응용하여 정점을 새로 계산한다. 유니티에서 제시된 이론을 바탕으로 적용해본 결과는 아래와 같다. 겹치는 부분을 조정하기 힘들다는 단점이 있지만 굉장히 흥미로운 방법이라 생각됩니다. 2. 구의 특성을 이용한 방법 구는 모든 정점의 길이가 동일하다..
2018.06.29 -
Voxel Planet Generator - Unity
Voxel Planet Generator - 개발기간 : 2018.4 ~ 2018.4 - 개발환경 : Unity - 유니티를 사용하면서 만들어본 프로젝트입니다. - 복셀 기반의 행성 생성을 목표로 합니다. [소개 영상] [영상] [영상] Link : Voxel World를 Planet으로 만드는 방법 [영상] [영상] [영상] 유니티를 쓰면서... 좋았던 점 - 우선 유니티를 쓰면서 가장 좋았던 점은 public 으로 변수를 선언하면 inspcetor에 연결 UI가 만들어 진다는 점입니다. - 다이얼로그를 만들고 컨트롤 배치하고 변수와 연결하고 하는 작업이 필요없어 정말 편했습니다. - 절두체 컬링을 신경 쓸 필요가 없었습니다. - 컴포넌트를 이용해 충돌처리가 쉬웠습니다. 곤란했던 점 - 너무 많은 기능..
2018.06.28 -
Procedural Planet Generate(2) - Normal 생성
Vertex Normal 생성 - 만들어진 지형의 정점을 참조하여 노말을 생성한다. 노이즈 함수를 이용해 생성된 지형을 렌더링 해보면... 와이어 프레임으로 렌더링 했을 때와는 달리 지형의 굴곡이나 높이 정보를 파악하기 어렵습니다.물체의 형태는 음영과 그림자로 표현이 되는데, 둘 다 존재하지 않기 때문 입니다. 이 두 가지는 모두 빛과 관련이 되며, 이를 계산하기 위해서는 노말 정보가 필요합니다. 정점의 노말 정보를 구하기 위해서는 1. 현재 정점의 상, 하, 좌, 우 정점의 위치 정보를 가져온다.2. 정점 정보를 참조하여 만들어지는 4개의 삼각 메쉬의 Face Normal을 구한다. - FaceNormal은 삼각메쉬의 두 벡터를 외적하여 구합니다. 3. 만들어진 Face Normal을 가산하여 평균을 ..
2018.06.12 -
GLGameTooL - 3D 포트폴리오
GLGameTooL - 개발기간 : 2016.4 ~ 2016.9 - 개발환경 : OpenGL 3.2 + MFC - 2016년 4월, 약 2년전에 게임프로그래밍 입문하면서 만들었던 툴입니다. - 기초적인 3D 게임 프로그래밍 공부를 위해 만들었습니다. 1. 모델 매니저 - 모델 정보를 로드하며, 모델의 상태 및 모델 리스트를 보여줍니다. - 모델 형식은 obj 파일과 ase파일을 사용합니다. - ase의 경우 파서를 직접 만들었으며, obj의 경우 간단하게 분석하여 외부 파서를 조금 수정하여 사용하였습니다. - 모델은 셋단위로 관리됩니다. [구성] [영상] (1). ase - 게임 프로그래밍 공부를 해야겠다 결심하고, 가장 먼저 진행했던 것이 ASE 파서입니다. - 당시 계층구조에 대한 개념이 전혀 없었고..
2018.06.05 -
Procedural Planet Generate(1) - 지형 생성
절차적 행성 생성 - 간단하게 행성을 만드는 것을 목표로 한다. 1. 우선 Level Of Detail 이 적용된 Square 6개를 생성하여 큐브로 조립합니다. - 큐브를 사용하는 이유는 Culling 하기 좋기 때문입니다. - Level Of Detail Square 바로가기 [결과물] 2. Cube To Sphere - Cube를 Sphere로 만들어 줍니다. - 변환코드는 GLSL Shader에 작성하여 시뮬레이션 하였습니다. (1) 만드는 방법 1) 아래 링크의 공식을 이용한다. - Cube를 Sphere로 만드는 공식 - 주의 할 점은 Size가 -1 ~ 1 이어야 합니다. 2) 원의 특성을 이용하기 - Sphere 변환은 원의 특성을 이용하면 됩니다. - 원은 모든 정점이 중심점에서 동일한 ..
2018.05.23 -
QuadTree Static Level Of Detail
QuadTree를 이용한 SLOD Level Of Detail?거리에 따라 물체의 정밀도를 조절하여 연산 속도를 올리는 방법. Dynamic Level Of Detail메쉬를 실시간으로 분할하는 알고리즘을 사용하여 정밀도를 결정.팝핑현상이 적고 정밀하지만, CPU 의존도가 높으며 비디오 메모리와 연결이 자주 일어난다. Static Level Of Detail미리 각 레벨에 맞는 데이터를 비디오 메모리에 올려두고 상황에 맞게 교체하는 방법이다.팝핑현상이 눈에 띄게 일어난다. 팝핑현상 : 레벨이 교체되면서 나타나는 정밀도 변화현상 테셀레이션은 셰이더 기반으로 실행되는 Level Of Detail. 모든 작업이 gpu에서 이루어진다. QuadTree를 이용한 SLOD - 게임 프로그래밍을 입문하고 처음 진행한..
2018.05.22