"PhysX Sample 정리"의 두 판 사이의 차이

jjuiddong
이동: 둘러보기, 찾기
(새 문서: PxReal = float PxF32 = float PXF64 = double PxU32 = unsigned int PxU8 = unsigend char ---------------------------------------------------- '''Framework 분석.''' SampleUserIn...)
 
(Sample 일반)
 
(한 사용자의 중간의 편집 4개 숨겨짐)
1번째 줄: 1번째 줄:
 +
 +
=== Sample 일반 ===
 +
 +
* sample 은 오른손좌표계를 사용한다. (OpenGL과 동일)
 +
* matrix 연산은 mt3 * mt2 * mt1 * mt0 * vertex 형태로 계산된다. 즉 뒤에서 앞으로 전진하면서 계산된다.
 +
 +
 +
[[Bridge Sample 정리]]
  
 
PxReal = float
 
PxReal = float
10번째 줄: 18번째 줄:
 
PxU8 = unsigend char
 
PxU8 = unsigend char
  
 
+
=== Sample 소스 분석 ===
----------------------------------------------------
+
 
'''Framework 분석.'''
 
'''Framework 분석.'''
  
141번째 줄: 148번째 줄:
 
* Console
 
* Console
 
** 입출력?
 
** 입출력?
- Camera
+
* Camera
- DefaultCameraController
+
* DefaultCameraController
- CameraController
+
**  CameraController
- interface
+
*** interface
- 입력을 받아서 카메라를 조정하는 역할을 한다.
+
** 입력을 받아서 카메라를 조정하는 역할을 한다.
- RenderMaterial
+
* RenderMaterial
- RenderBaseObject
+
** RenderBaseObject
- 기본정보 저장.
+
*** 기본정보 저장.
-
+
* RenderPhysX3Debug 관리.
- RenderPhysX3Debug 관리.
+
* PhysXSample 관리.
- PhysXSample 관리.
+
  
  
  
 
RenderBaseObject
 
RenderBaseObject
- 이름, userData 저장.
+
* 이름, userData 저장.
  
  
 
RenderBaseActor
 
RenderBaseActor
- RenderBaseObject 상속
+
* RenderBaseObject 상속
- RenderShape 관리.
+
* RenderShape 관리.
- Actor 를 출력한다.
+
* Actor 를 출력한다.
  
 
RenderMeshActor
 
RenderMeshActor
- RenderBaseActor 상속  
+
* RenderBaseActor 상속  
- RendererMeshShape 생성.
+
* RendererMeshShape 생성.
  
 
RenderBoxActor
 
RenderBoxActor
- RenderBaseActor 상속  
+
* RenderBaseActor 상속  
- RendererBoxShape 생성.
+
* RendererBoxShape 생성.
  
 
RenderSphereActor
 
RenderSphereActor
178번째 줄: 184번째 줄:
  
 
PhysXSample
 
PhysXSample
- 물리연산 과 출력할 actor를 관리한다.
+
* 물리연산 과 출력할 actor를 관리한다.
- 게임에 연관된 기능을 담당한다. (GameMain 과 비슷하다)
+
* 게임에 연관된 기능을 담당한다. (GameMain 과 비슷하다)
  
  
 
ControlledActor
 
ControlledActor
- SampleBridge 에서만 쓰이는 클래스
+
* SampleBridge 에서만 쓰이는 클래스
- standup, crouching, jump, telport 동작을 정의한다.
+
* standup, crouching, jump, telport 동작을 정의한다.
  
  
192번째 줄: 198번째 줄:
  
 
==============================================================
 
==============================================================
SampleApplication::OnDraw 분석.
+
'''SampleApplication::OnDraw 분석.'''
  
- onTickPreRender()
+
* onTickPreRender()
- PhysXSampleApplication::OnRender()
+
* PhysXSampleApplication::OnRender()
- mCamera.BuildFrustum();
+
** mCamera.BuildFrustum();
- renderer->clearBuffers();
+
** renderer->clearBuffers();
- renderer->drawScreenQuad(sq);
+
** renderer->drawScreenQuad(sq);
- renderer->queueLightForRender(*mLights[i]);
+
** renderer->queueLightForRender(*mLights[i]);
- mSample->render();
+
** mSample->render();
- mRenderActors 출력.
+
*** mRenderActors 출력.
- renderer->render(mCamera.getViewMatrix(), mCamera.getProjMatrix());
+
** renderer->render(mCamera.getViewMatrix(), mCamera.getProjMatrix());
- mSample->customizeRender();
+
** mSample->customizeRender();
- mSample->displayFPS();
+
** mSample->displayFPS();
- getRenderer()->finalizeTextRender();
+
** getRenderer()->finalizeTextRender();
- onTickPostRender()
+
* onTickPostRender()
- m_renderer->swapBuffers();
+
* m_renderer->swapBuffers();
- 카메라 위치 이동, m_worldToView 업데이트.
+
* 카메라 위치 이동, m_worldToView 업데이트.

2014년 3월 4일 (화) 12:29 기준 최신판

[편집] Sample 일반

  • sample 은 오른손좌표계를 사용한다. (OpenGL과 동일)
  • matrix 연산은 mt3 * mt2 * mt1 * mt0 * vertex 형태로 계산된다. 즉 뒤에서 앞으로 전진하면서 계산된다.


Bridge Sample 정리

PxReal = float

PxF32 = float

PXF64 = double

PxU32 = unsigned int

PxU8 = unsigend char

[편집] Sample 소스 분석

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 업데이트.
개인 도구
이름공간

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