삐리군의 이글루

cannon21.egloos.com

포토로그 마이가든



Red3 GameObjectSystem 엔진

camera.xml

<?xml version="1.0" encoding="euc-kr"?>
<game_object_template name ="camera"/>
<components>
  <component  type = "mesh"/>
  <component  type = "transform"/>
</components>
<propertys>
  <property name = "camera.pty"/>
</propertys>


Red3엔진의 게임객체는 컴포넌트방식으로 작성된다.
기본이 되는 객체를 GameObjectManager에 가지고 있다가 게임에서 필요할 때 메니져에 요청하면 템플릿의 클론을 만들어서
생성하게 된다.


Red3엔진에서 게임오브젝트 및 컴포넌트의 프로퍼티를 만드는 방법 엔진

camera.json
{
    "Near" : 1000,
    "Far" : 1,
    "Active" : true,
    "Fov" : 0,
    "AspectRaito" : 0,
    "WorldPos":
    {
      "x": 0.1,
      "y": 0.2,
       "z": 0.3
    }
}


//프로퍼티 셋팅
 CameraProperty* pProperty = new CameraProperty();
 
 pProperty->loadFile("cameraproperty.json", DATA_JSON);
 float fNear = 0.0f;
 vector3 vPos;
 pProperty->getValue("Near", fNear);
 pProperty->getValue("WorldPos.x", vPos.x);
 pProperty->getValue("WorldPos.y", vPos.y);
 pProperty->getValue("WorldPos.z", vPos.z);


Red3Engine 제작노트-1 엔진

 


FBX uv정보 로딩

UV정보는 한 레이어에 하나의 UV정보가 포함되어 있다.
KFbxLayerElementUV개체를 이용하여 UV정보를 검색할 수있다.

UV정보도 법선정보처럼 맵핑모드와 참조모드를 통해서 얻을 수있다.

UV정보는 인덱수 또는 UV좌표 수 중 많은것을 기준으로 크기를 잡는다.
* Layer별로 UV가 있는 경우 구분할 수있는 방법
KFbxLayerElementUV::GetName함수를 이용해서 구분한다.

특성                        텍스쳐 이름                   UV셋         레이어
Diffuse                   DiffuseTex.jpg                map1            0  
Specula                Specular.jpg                   map1            0

http://marupeke296.com/


FBX 법선정보 로딩 엔진

법선정보를 얻기 위해서는 Layer에서 얻어와야한다.

KFbxMesh::GetLayerCount : 레이어의 개수
레이어의 개수가 여러개 있을 수있는데 법선정보는 보통 0번 레이어에 포함된다.
KFbxLayerElementNormal을 통해서 법선백터를 얻을 수있다.

FBX에서는 여러방식으로 법선백터를 저장하고 있습니다.
1. 매핑모드
    KFbxLayerElementNormal::GetMappingMode함수
2. 참조모드
    KFbxLayerElementNormal::GetReferenceMode함수


맵핑모드                                참조모드

eBY_CONTROL_POINT         eDIRECT
                                            eINDEX_TO_DIRECT



eBY_POLYGON_VERTEX      eDIRECT
                                            eINDEX_TO_DIRECT

맵핑모드는 노멀이 어떻게 모델표면에 정의되어 있는지 나타낸다.
eBY_CONTROL_POINT :모델의 얼굴을 정의하는 지점에 법선을 정의
eBY_POLYGON_VERTEX : 다각형의 정점에 법선을 정의

참조모드는 노멀이 어떻게 배열되어있는지 나타낸다.
eDIRECT : 버텍스의 순서에 법선이 포함
eINDEX_TO_DIRECT : 인덱스로 표시

http://marupeke296.com/


FBX 메쉬로딩 엔진

정점정보를 얻어오는 두가지 방법

1. 꼭지점의 인덱스를 이용

GetPolygonCount : 총 폴리곤 수
GetPolygonVertexCount : 다각형 꼭지점 인덱스 수
GetPolygonVerteices : 다격형 꼭지점 인덱스 배열

* 1개의 폴리곤을 구성하는 꼭지점 인덱스 집합을 얻기 위해 GetPolygonVertex함수를 사용한다.
* FBX는 한개의 폴리곤이 삼각형만 지원하는 것이 아니기 때문에 GetPolygonSize함수를 통해 1개의 폴리곤을 구성하는
꼭지점인덱스 수를 얻어올 수있다.

2 .정점 정보를 얻어오는 방법

GetControlPointCount : 정점수
GetControlPoints : 정점좌표 배열


http://marupeke296.com/

FBX 정리 1 엔진

FBX MappingMode

eNONE : 맵핑정보가 없음
eBY_CONTROL_POINT : 자유곡면 모델에 대해서 정의되는 점
eBY_POLYGON_VERTEX : 다각형을 구성하는 정점에 대해 매핑(요것을 사용)
eBY_POLYGON : 전다각형에 대해서 단지 1개만 매핑
eBY_EDGE : 메쉬의 엣지에 대해서 매핑
eALL_SAME : 전 서페이스에 대해서 단지1개만 맵핑

KFbxLayerElement::GetReferenceMode

eDIRECT :  mDirectArray에 데이터가 들어간다.
eINDEX : FBX v5.0까지 사용했던 플러그로 eINDEX_TO_DIRECT로 통합되었음
eINDEX_TO_DIRECT : mDirectArray에 버텍스데이터가 들어가고 mIndexArray에는 인덱스번호가 들어간다.
IndexBuffer를 만든다고 생각하면 될거같다.


http://marupeke296.com/

Red3엔진 CreateDevice데모 스샷 엔진



plugins.xml

Dx9렌더러 플러그인을 xml파일을 통해 읽어서 Dx9렌더환경을 만든다.

기회란 무엇일까? 사는이야기

사람들은 누구나 기회가 있다고 한다.
정말일까?
기회란 준비된 자에게만 온다는 말이 있는데
정말일까?
내가 아는분이 참으로 불우한 환경에서 자랐다.
부모는 이혼하고 돈이 없어 돈을 벌며 공부를 했다.
전자대리점에서 A/S기사로 일하면서 방송통신대학교 법대를 졸업하고
끊임없이 공부를 한다.
금융쪽 자격증을 6개나 땄다.
결혼을 하는데 200만원 가진게 전부였다.
그리고 10년이 흘렀다.
지금은 투자회사의 CEO가 되셨다.
기회는 실천이 가장중요하다고 생각한다.
비젼과 실천이 있으면 때가 오고 기회가 올것이다.


기다림의 미학 주식투자노트

팍스넷에서 우연히 프리차트라는 필명을 쓰시는 분의 글을 읽고 운영하시는 카페에서
그분의 투자철학을 보게되었는데 내가 그동안 정리한 생각과 많은 부분 일치하였다.
주식시장에는 손절이라는게 있다.
수익을 확정지어서 추가손실을 막고 다른 종목에 투자하여 수익을 내기위한 병법이다.
물론 투자경험이 많은 사람은 이산이 아니네 하고 빠져나가 수익이 나는곳에 투자할 수있다.
이럴땐 유효한 병법이지만 내가 만약 전투경험이 없는 장수라면 자신의 병력만 낭비하는 병법이 될것이다.
다른곳을 치더라도 병력을 잃고 빠져나올것이기 때문이다.
동물적인 감각이나 제갈공명 처럼 선견지명이 없다면 때를 기다려야한다.
주식시장은 간단하다 쌀때 사서 비쌀때 파는것이다.
병법이나 대상을 보기보다는 때를 기다리는 법을 터득하면 편안한 투자를 할 수있을것이다.

1 2 3 4 5 6 7 8