Direct11
[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; }; - 입자들이 물리적으로 사실감 있게 움직이게 하는 것..
[Direct11] 40. 3D Direct Application - Terrian Rendering #2
1. 3D Direct Application 1.1 Terrian Rendering 1.1.1 Terrian Rendering System 1.1.1.1 Frustum - 지형 패치들 중 대다수는 카메라에 보이지 않음, 절두체 선별을 적용하면 성능이 개선될 가능성이 큼 - 한 패치의 테셀레이션 계수들이 모두 0이면 GPU는 그 패치를 더이상 처리하지 않고 폐기 - 시야 절두체의 평면, 패치를 감싸는 경계입체가 필요 void ExtractFrustumPlanes(XMFLOAT4 planes[6], CXMMATRIX M); - 각 패치는 사각형이므로 축 정렬 경계상자를 경계입체로 사용 - 패치들은 xz평면에 규칙적으로 배치, 패치 제어점들의 x, z성분의 경계는 아주 간단히 구할 수 있음 - y 성분의 경계..