"PhysX Sample 정리"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
+ | [[Bridge Sample 정리]] | ||
PxReal = float | PxReal = float |
2014년 1월 23일 (목) 09:17 판
PxReal = float
PxF32 = float
PXF64 = double
PxU32 = unsigned int
PxU8 = unsigend char
Framework 분석.
SampleUserInput
- 추상클래스
- 입력을 받아서 리스너에게 전달한다.
RendererWindow
- 추상클래스
- SamplePlatform 래핑 클래스.
- update() 함수에서 모든걸 처리한다.
SampleApplication
- RendererWindow, InputEventListener 상속
- Renderer 관리
- SampleAssetManager 관리
- 어플리케이션 매인 클래스.
SampleAsset
- materal, texture, input 경로 관리.
- 한번 읽은 데이타를 재활용할 목적으로 만듬.
SampleAssetManager
- SampleAsset 관리.
Rederer 분석.
SampleRenderer::Renderer
D3D9Renderer
- Renderer 상속
- DirectX9
RendererVertexBuffer
- RendererInteropableBuffer
- 간단한 정보 저장
- 추상클래스
- 기본적인 버텍스 버퍼를 정의한다.
- 버텍스 버퍼를 생성하고, 관리한다.
RendererIndexBuffer
- RendererInteropableBuffer
- 추상클래스
- 인덱스 버퍼에 관련된 기본적인 정보 관리.
RendererInstanceBuffer
- RendererInteropableBuffer
- 추상클래스
- 인스턴스에 관련된 정보를 묶어서 buffer처럼 관리한다.
RendererTexture2D
- 추상클래스
- 텍스쳐를 관리한다.
RendererTarget
- 인터페이스
- bind(), unbind()
RendererMaterial
- 추상클래스
- 텍스쳐 필터 함수 관리.
RendererMaterialInstance
- RendererMaterial 클래스에 data 정보를 추가함.
RendererMesh
- 추상클래스
- 메쉬를 정보 관리, 출력.
RendererLight
- 추상클래스
- 광원 관리.
RendererColor
- b,g,r,a 컬러값 관리.
RendererProjection
- 투영 행렬 관리.
RendererMeshContext
- mesh, material, instance 관리
- mesh를 다루는데 필요한 최소한의 정보를 관리한다.
RendererShape
- userData와 mesh 를 가진다.
RendererMeshShape
- RendererShape 상속
- Mesh vertexBuffer, indexBuffer 생성 관리.
RendererBoxShape
- RendererShape 상속
- Box vertexBuffer, indexBuffer 생성 관리.
SampleBase 정리.
RAWMesh
- vertex, normal, color, uv, index 를 가지는 기본적은 메쉬정보를 처리하는 클래스다. 구조체에 가깝다.
PxSampleAllocator
- 16bit aligned
- 메모리를 동적으로 할당해주는 클래스다.
- VPD 와 연계되는 것과는 관련 없다.
SampleAllocateable
- new, delete 인라인 오버라이딩.
SampleFramework::SamplePlatform
- 싱글톤.
- 가상클래스.
- 플랫폼을 일반화한 클래스.
PhysXSampleApplication
- sample 프래임워크 클래스.
- SampleFramework::SampleApplication 상속받음.
- Console
- 입출력?
- Camera
- DefaultCameraController
- CameraController
- interface
- 입력을 받아서 카메라를 조정하는 역할을 한다.
- CameraController
- RenderMaterial
- RenderBaseObject
- 기본정보 저장.
- RenderBaseObject
- RenderPhysX3Debug 관리.
- PhysXSample 관리.
RenderBaseObject
- 이름, userData 저장.
RenderBaseActor
- RenderBaseObject 상속
- RenderShape 관리.
- Actor 를 출력한다.
RenderMeshActor
- RenderBaseActor 상속
- RendererMeshShape 생성.
RenderBoxActor
- RenderBaseActor 상속
- RendererBoxShape 생성.
RenderSphereActor RenderGridActor RenderCapsuleActor
PhysXSample
- 물리연산 과 출력할 actor를 관리한다.
- 게임에 연관된 기능을 담당한다. (GameMain 과 비슷하다)
ControlledActor
- SampleBridge 에서만 쓰이는 클래스
- standup, crouching, jump, telport 동작을 정의한다.
==================================================
SampleApplication::OnDraw 분석.
- onTickPreRender()
- PhysXSampleApplication::OnRender()
- mCamera.BuildFrustum();
- renderer->clearBuffers();
- renderer->drawScreenQuad(sq);
- renderer->queueLightForRender(*mLights[i]);
- mSample->render();
- mRenderActors 출력.
- renderer->render(mCamera.getViewMatrix(), mCamera.getProjMatrix());
- mSample->customizeRender();
- mSample->displayFPS();
- getRenderer()->finalizeTextRender();
- onTickPostRender()
- m_renderer->swapBuffers();
- 카메라 위치 이동, m_worldToView 업데이트.