분류 전체보기

[Direct11] 43. 3D Direct Application - Shadow Mapping #1
1. 3D Direct Application 1.1 Shadow Mapping 1.1.1 Shadow Mapping System 1.1.1.1 Shadow Map - 그림자 매핑 알고리즘은 장면 깊이의 렌더링에 의존, 그러나 Texture 대상 렌더링의 일종 - 광원의 시점에서 본 장면의 깊이 값들을 깊이 버퍼에 기록 - 장면을 광원의 시점에서 렌더링하면 광원에 가장 가까운 픽셀 단편을 파악, 그런 단편들은 반드시 그림자 바깥에 존재 - 광원의 관점에서 본 장면 깊이를 저장하는데 도움을 주는 그림자 맵이라는 편의용 클래스를 사용 class ShadowMap; - 클래스의 생성자는 지정된 크기의 Texture & View, Viewport를 생성 - 그림자 맵의 해상도가 높을수록 그림자의 품질이 좋아짐 -..

[Direct11] 42. 3D Direct Application - Particle System #2
1. 3D Direct Application 1.1 Particle System 1.1.1 GPU Particle System - 입자 시스템은 시간이 흐름에 따라 새 입자들을 방출하거나 기존 입자들을 파괴 - 동적 정점 버퍼에 입자들을 담고 CPU에 입자들을 생성하거나 파괴 - 스트림 출력 전용 패스를 이용하면 생성/파괴 갱신 주기를 전적으로 GPU에서 수행하는 것이 가능 1.1.1.1 Particle Effect - 특정한 입자 시스템의 구체적인 행동방식은 하나의 효과파일로 구현, 각 입자 시스템마다 서로 다른 효과파일이 있는 것 - 입자를 방출하고 파괴하고 그리는 구체적인 방법은 입자 시스템마다 다르기 때문에 개별적인 효과 파일 사용 - 비 입자는 땅에 닿으면 파괴해야하는 반면 불 입자는 방출 몇 ..

[Direct11] 41. 3D Direct Application - Particle System #1
1. 3D Direct Application 1.1 Particle System 1.1.1 Particle 1.1.1.1 Particle Algorithm - 입자를 점으로 저장하되 실제로 렌더링할 때 기하 셰이더에서 그 점을 카메라를 바라보는 사각형으로 확장 - 나무 빌보드에 사용했던 것과 비슷한 전략 사용, 입자 빌보드의 경우 카메라를 정면으로 바라본다는 점이 다름 - 세계 공간 상향 벡터, 빌보드 중심 위치, 시점 위치를 알고 있으면 세계 공간 좌표로 나타낼 수 있음 struct Particle { XMFLOAT3 InitialPos; XMFLOAT3 InitialVel; XMFLOAT2 Size; float Age; uint32 Type; }; - 입자들이 물리적으로 사실감 있게 움직이게 하는 것..