본문 바로가기

Engine Development

Triplanar Texturing 티스님 블로그보고 퍼왔는데... 이건 옛날에 다른 소스에서 보든 것과는 틀리게 뭔가 더 깔끔하게 나오는거 같다. 노말도 더 살고,,, 참고 : http://aniz.tistory.com/245 위에 있는 것은 리드웍스 엔진에서 Y축 스플래팅한거를 참고한건데.. 위의 방식도 한번 적용을 해봐야겠다. GameDev.net : http://www.gamedev.net/blog/584/entry-2249767-tri-planar-textures-and-bump-mapping/ GameDev.net : http://www.gamedev.net/blog/979/entry-2250761-triplanar-texturing-and-normal-mapping/ 위 사이트에 잘 나와있는거 같음... PS. 티스님 감사합니.. 더보기
Shader 빌드 시스템 UberShader 시스템을 구현하기는 했다.. 하지만... 문제는 어디까지 쉐이더 빌드 시스템을 쓸지가 문제... 모델 하나당 쉐이더가 생성되는 것을 기본으로 생각하면 리소스 관리 측면에서 큰 부하가 생기는 것 같고... 옵션이 변경될때마다 새로 빌드를 해야하는 문제... 어제 들은 애기로는 배틀필드3에서 그래픽 옵션 바꿔서 다시 시작하는데 2분이 걸린다는 애기를 듣고.... 당연히 쉐이더 최적화 부분에서는 if문이 없게 디파인 걸어서 모두 만드는게 정답인데 옵션조정시 2분이라.. 그것을 최적화하기 위해 미리 디파인된 쉐이더를 모두 뽑아서 데이터로 가지고 있자니 용량이 너무 크다고 하더라... 흠.... 여러가지 생각해 볼 문제는 더 있겠지만... 현재는 구현햇다는거에 만족해야지... 다음 구현 목표는.. 더보기
Shader 빌드... 예전에는 Fxc 로 빌드한 파일을 즉 오브젝트 파일을 바이너리로 로드하여 D3DXCreateEffect 이걸로 읽어서 사용했는데... 우버 쉐이더 만들면서 보니... fxc로 컴파일하여 오브젝트 파일로 만들면... ㅜㅜ 디파인이 안된다는거... define... 안먹혀... fxc로 만들면 좋긴한데... 제길... fxc빌드할때 아마도 define까지 설정해줘야 하나보다... fxc 빌드 옵션에 define 설정하는거 있는거 보니... 뭐 까짓것.. 걍 fx파일 쓰지 뭐 ㅋㅋ 근데 include 처리... 우째하나... 이제 우버 쉐이더 거의다 왔다!! 끝이 보임 ㅋㅋ 더보기
내 맘대로 Shader 현재 쉐이더 시스템 Effect 하나에 테크닉 여러개 붙혀놓고 if 문으로 분기 처리해서 열라 조잡하게 되어있다.. 이유는 하나인데 메쉬면 메쉬, 지형이면 지형 하나의 이펙트를 선언해서 이펙트 변환(Change)없이 쓸려하니 최적화면에서 참 괜찮다고 생각했는데... 코드가 늘어날때마다 쉐이더에 분기문 처리가... ㅜㅜ UberShader를 사용한다면 define으로 선언해서 조금 코드 복잡하게 보일지 몰라도 분기문이 없어 GPU에서 처리는 빨리될텐데... 흠... 여기서 질문이 하나 있음.. 1. Effect 변환없이 FX 파일에 여러개의 테크닉을 넣어놓고 메쉬를 랜더링할때 2. UberShader를 사용해서 Effect가 메쉬를 그릴때마다 바뀌지만 랜더링 속도 어떤게 좋을까요? 좀더 길게 설명하자면.... 더보기
공부하자 공부해 멀티쓰레드 랜더링 멀티쓰레드 엔진구조 쉐이더 에디터 심리스 지형 노드구조 에디터 맵툴 통합 라이트맵 굽기 일단은...... 아... 혼자서 할려니 힘드네 ㅎㅎ 더보기
지형쪽 엔진추가작업 흠,... 언렬3 랜드스케이프.. 좋다 ㅋㅋㅋ 근데 일단 엔진쪽 지형 추가작업을 해야할거 같다. 일단 이미지 부러쉬 및 심리스 월드... GPU 지형 랜더링 심리스 CLOD + SLOD 최적화 지형 10k * 10k 만들기.. Virtual Texture 제작 Alpha Map을 사용한 스플래팅 패턴 브러쉬... 이거는 이미지 부러쉬 만들면 될거같음.. 흠... 뭐 이정도만 해도.. 몇달 걸리겠구나... 더보기
스플래팅 Y축 맵핑... 성공! xz축이 아닌 y축을 이용한 스플래팅! ㅎㅎㅎㅎ 일주일동안 고민했는데... 결론은 버택스 노말을 이용해서 xy zy 2개의 uv를 이용하여 텍스쳐를 혼합하여 랜더링... 참고 자료.. http://leadwerks.com/forum/viewtopic.php?f=7&t=3758&start=0 더보기
Skinning_with_Dual_Quaternions 엔진을 기존 메트릭스 계산에서 듀얼쿼터니언으로 바꿨는데... 프레임이 빨라진것은 모르겠지만.. 기존 행렬을 넘기기위해서 float4x3에서 float2x4로 하나가 줄으면서 최대 50개의 본을 넘긴다. 행렬은 듀얼쿼터니언의 절반인 25개인 반면... 일단 xna 참고 자료를 찾아서 구현해보고 구글에서 논문도 찾아보고 이제는 SkinnedInstancing 이거를 해봐야할거같은데... 넘 어렵다... 일단 VTX(?) 라는 텍스쳐 방식이 있는데.. 그건 DX10이나 될거같고.. DX9에서는... 어찌해야할지... 고민이 많다 ㅎㅎ 더보기