Loading...
2021. 1. 10. 08:21

20. 구성 정리

현재 구성에서 작업을 진행하다보니 예전에 귀찮아서 대충 만들어 둔게 자꾸 발목을 잡는다.원래 계획했던 구성은 아래와 같음assert가 에러관련 체크해 주는거고system은 시스템 전반적인것에 대한 내용이 들어 있고core는 엔진쪽 부분들. 예를들어 math 같은거renderer은 나중에 dx공부를 위해 버전별 처리할려고 한거고그 아래 dx9, 10, 11, 나중에는 software render까지 전부..이렇게 계획하고 작업을 처음에는 시작했지만귀차니즘으로 하나씩 둘씩 없어지고 core밑에 바로 rendererdx9을 달아버렸다.이유는 귀찮기도 했고 은근히 인터페이스 맞춰주는 작업이 힘듬.그러다 보니 작업에는 편했는데 이제 dx9 말고 이제 software renderer에서 core의 math를땡겨쓸려..

2017. 12. 25. 13:49

19. nsight

이전에 사용하던 퍼포스 대신 nsight 붙임. 기능에 익숙해지는데 시간이 좀 걸렸음. 1. 거지같이 프로파일링 정보가 좀 제한됨. nvidia gpu 제품 리스트에서 체크해보니 내건없구나..2. 기존 dxut 기반이었던걸 뜯어서 하고 있는데 시간이 많이 걸림. 소스정리 한번 해야할것 같음.3. c 드라이버에 설치해둔 3dsmax를 용량딸려서 지웠음. 이거 설정한다고 꽤 오래걸렸는데 용량이 8기가 밖에 안남아서 unreal 관련 vs10 설치하느라 지움. 결국 다시 d 드라이버에 설정해야함. ssd 128 말고 256으로 사고싶다..시팡. 우선 max 지우기전에 대충 뽑아둔 플랜을 화면에 띄우는건 성공했다만 아직 카메라가 거지같아서카메라도 작업을 좀 해야함. 결론은.....1. 3dsmax d 드라이버에..

18. dx를 자체 라이브러리로.

dx에서 제공하는 라이브러리, 자료형들을 자체 라이브러리로 대체하여 만들었는데.. 점점 이런생각이 든다.. 뭔가 쓸데없다... 코드만 지저분해지고.. 그렇다면 자체라이브러리를 쓸려고 한 이유는 뭘까. 장점은... 1. 최대한 플랫폼 독립적으로 만든다. 요게 메인. 2. 3d api 를 직접 구현해 본다. 이건 머 차피 구현해본 순간만 기억나고 곧 까먹겠지만... 단점은... 1. 손이많이간다. core는 자체 라이브러리. 예를들면 mgvector, mgmatrix etc... (겁내 노가다) 2. 하위에서는 다시 컨버팅 해야한다. 예를들면 mgvector => d3dvector (겁내 기찮) 3. 프로젝트가 많아진다. 관리가 어렵다는 거지.

17. svn.

테스트 코드도 점점 많아지고 작업해둔 기간이 길어질수록 까먹는 일도 많고 해서 다시 svn을 사용하기로 했다. 기존에 사용했던 방식대로 visual svn을 사용했다. 이전에는 네명이서 작업할려고 iptime + 내 피씨 visual svn server 을 사용해서 설정했는데 3년전 일이라 1도 기억안나서 걍 대충대충. 이젠 혼자할거니까... 레드마인도 설치해서 svn 연동작업까지 하려고 했지만 귀차니즘과 해야할일 목록의 압박으로 다음기회에... 생각해보니 가장 처음은 cvs를 썻고 그 이후는 svn + 퍼포스, 그리고 지금은 그냥 퍼포스를 쓰는구만.

16. 32bit, 64bit

1. size_t 관련 문제int n = _tcslen(szStr);.warning C4267: '초기화 중' : 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다._tcslen 이 반환하는 값이 size_t이다.왜 int를 반환하지 않고 size_t를 반환하는 걸까?size_t의 내부를 보면 아래와 같이 되어 있다. #ifndef _SIZE_T_DEFINED#ifdef _WIN64typedef unsigned __int64 size_t;#elsetypedef _W64 unsigned int size_t;#endif#define _SIZE_T_DEFINED#endif즉, 64비트는 8byte의 크기를 가지며 32비트에서는 4byte를 가진다. 2. 프로젝트 속성 설정링커 - 고..

2017. 11. 27. 16:39

15. archive

필요한 기능 1. 파일 저장- 기본적으로 바이너리- 디버깅을 위해 text나 xml로도 지원 (디버깅용)2. 파일 로딩- 바이너리- MMF(Memory Mapped File) : 프로세스의 가상 메모리 주소 공간에 파일을 매핑한 뒤 가상 메모리 주소에 직접 접근.장점 a. 직접적인 파일 입출력을 수행할 필요가 없다. 파일 내용이 메모리 주소에 사상되므로 파일을 모두 불러온 것처럼 메모리 주소를 이용하여 연산작업을 할 수 있어 코드가 깔끔해지고 유지보수가 편해진다. b. 버퍼나 파일 처리를 위한 추가적인 자료 구조가 필요없다. os에서 페이징 기법을 사용하여 파일의 내용을 관리하며 페이지 크기에 따라 적절히 파일의 내용을 읽고 쓸 수 있으며 파일 반영(flush)작업도 수행해 준다. c. 대용량 자료 처리..

14. character

기존에 만들어둔 플러그인을 날리고 새로 제작한다.기존것은 차피 오래돼서 기억도 안나고 지금 만들면 더 잘만들수 있지 않을까?확장을 위해 기존에 만들어 둔 collada나 정보가 많이 공개되어있는 fbx중 하나를 지원하도록 해 볼까...최적화를 위한 몇가지 아이디어도 있고 하니 살살 작업해보자. 3ds max 자체 플러그인 제작은 아래 링크를 보면 된다. 자체 포맷으로 정보를 저장하고 나서 다시 엔진에서 로드 하여 출력할 경우 구조를 어떻게 해야 할까.케릭터를 출력하기 위해서는 기본적으로 버텍스, 인덱스, 텍스쳐, shader 가 기본적으로 필요하고이를 출력하기 위해 카메라, 라이트, 유닛정보, 등을 담는 구조가 필요하다.추가로 dx9 이외의 플랫폼을 지원하기 위해서는 상위 클래스도 필요할 듯 하다. 고민..

2017. 11. 20. 11:01

13. max plugin

기존에 만들어둔 exporter 붙이면서 변경된 환경 업그레이드.기존 환경 : max 8, vs 2010바뀐 환경 : max 2014, vs 2012 문제 1.이전에 작성해둔 설정방법대로 했는데 안됨. vs에서 프로젝트 만들기에 선택은 되지만 실제로 안 만들어짐.C:\Program Files\Autodesk\3ds Max 2014 SDK\maxsdk\howto\3dsmaxPluginWizard 에 있는 readme.txt 파일을 참고해 보면 아래와 같이 적혀있다.1. Open the 3dsmaxPluginWizard.vsz file (in the 3dsmaxPluginWizard directory root) in a text editor and edit the ABSOLUTE PATH parameter ..