PhysX Sample 정리

jjuiddong
Jjuiddong (토론 | 기여) 사용자의 2014년 1월 22일 (수) 14:51 판

(비교) ← 이전 판 | 최신판 (비교) | 다음 판 → (비교)
이동: 둘러보기, 찾기

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 - 입력을 받아서 카메라를 조정하는 역할을 한다. - RenderMaterial - 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 업데이트.

개인 도구
이름공간

변수
행위
둘러보기
도구모음