"PhysX Sample 정리"의 두 판 사이의 차이
(새 문서: PxReal = float PxF32 = float PXF64 = double PxU32 = unsigned int PxU8 = unsigend char ---------------------------------------------------- '''Framework 분석.''' SampleUserIn...) |
|||
141번째 줄: | 141번째 줄: | ||
* Console | * Console | ||
** 입출력? | ** 입출력? | ||
− | + | * Camera | |
− | + | * DefaultCameraController | |
− | + | ** CameraController | |
− | + | *** interface | |
− | + | ** 입력을 받아서 카메라를 조정하는 역할을 한다. | |
− | + | * RenderMaterial | |
− | + | ** RenderBaseObject | |
− | + | *** 기본정보 저장. | |
− | + | * RenderPhysX3Debug 관리. | |
− | + | * PhysXSample 관리. | |
− | + | ||
RenderBaseObject | RenderBaseObject | ||
− | + | * 이름, userData 저장. | |
RenderBaseActor | RenderBaseActor | ||
− | + | * RenderBaseObject 상속 | |
− | + | * RenderShape 관리. | |
− | + | * Actor 를 출력한다. | |
RenderMeshActor | RenderMeshActor | ||
− | + | * RenderBaseActor 상속 | |
− | + | * RendererMeshShape 생성. | |
RenderBoxActor | RenderBoxActor | ||
− | + | * RenderBaseActor 상속 | |
− | + | * RendererBoxShape 생성. | |
RenderSphereActor | RenderSphereActor | ||
178번째 줄: | 177번째 줄: | ||
PhysXSample | PhysXSample | ||
− | + | * 물리연산 과 출력할 actor를 관리한다. | |
− | + | * 게임에 연관된 기능을 담당한다. (GameMain 과 비슷하다) | |
ControlledActor | ControlledActor | ||
− | + | * SampleBridge 에서만 쓰이는 클래스 | |
− | + | * standup, crouching, jump, telport 동작을 정의한다. | |
192번째 줄: | 191번째 줄: | ||
============================================================== | ============================================================== | ||
− | SampleApplication::OnDraw 분석. | + | '''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 업데이트. |
2014년 1월 22일 (수) 14:54 판
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 업데이트.