'Direct3D'에 해당되는 글 2건

  1. 2008.12.17 [C# + MDX 프로그래밍] HLSL
  2. 2008.10.30 3DS Viewer 만들기 (미완성)

버텍스,픽셀 쉐이더에 입문하기 위해서 .fx파일을 작성하는데.. 이걸 C#+MDX에서 읽으려는데 방법을 몰라 그냥 무작정 해봤습니다....

.fx로 작성된 파일은 Effect.FromFile 메서드로 읽어올수 있습니다.. 그러면 Effect 객체를 얻을수 있는데.. 이놈으로 그 효과를 볼수있습니다.. 그런데 이 메서드가 좀 이상한게 주소에 한글이 들어가 있으면 파일을 제대로 찾지를 못합니다.. 그래서 저는 StreamReader.ReadToEnd로 모조리 읽은 다음에 Effect.FromString으로 해결했습니다.. 이건 잘되네요..
string source = new StreamReader("파일이름").ReadToEnd();
Effect effect = Effect.FromString(device, source, null, null, ShaderFlags.None, null);
옵션은 그냥 전부 기본값으로 채웠습니다..

이렇게 읽어온 이펙트는 이렇게 씁니다..
effect.Technique = "technique1"; // 테크닉 이름을 선택합니다..
int passes = effect.Begin(FX.None);
for (int pass = 0; pass < passes; pass++)
{
    effect.BeginPass(pass);
    // 여기에 이펙트가 적용될 놈들 그리기
    effect.EndPass();
}
effect.End();

사실 쓰는데는 큰 어려운건 없는데 검색하려니까 잘 안나와서.. 직접해보고 간단히 정리해봅니다..

'컴퓨터 프로그래밍 > Direct3D' 카테고리의 다른 글

Direct3D projection Effect  (0) 2009.12.02
[C# + MDX 프로그래밍] HLSL  (0) 2008.12.17
3DS Viewer 만들기 (미완성)  (0) 2008.10.30
Posted by orange code

3D는 매번 시작할때마다 바로 좌절해버리는데 이번에도 마찬가지..
이번에는 3DS 뷰어를 만들겠다하고 검색하다가 이런곳을 발견..
http://archive3d.net/ 
3ds파일이 꽤 많아 테스트하기에 좋다고 생각하고, 자동차 하나를 받았습니다..


이런 자동차..

ase는 예전에 해봤는데 3ds포맷은 처음 해보는거라 일단 구글검색하여 페이지를 찾았습니다...
http://www.the-labs.com/Blender/3dsspec.html
http://www.martinreddy.net/gfx/3d/MLI.spec
3ds파일안에 material정보가 있는데 그 부분은 .mli 파일과 동일하다고 안적어놔서.. 따로 찾았네요.. (두번째 링크)

개발환경은 win xp, vs2008, c#, direct3d 입니다.. 
c++은 쓸데업는 코딩이 많고, opengl은 쓰려면 여기저기 찾아봐야되기 때문에... c#과 direct3d 가 된거죠..-_-;
어쨌든 결과적으로 미완성입니다... 왜냐면 정점들을 읽어서 출력하는건 알겠는데...
material이라든지 lighting 관련된건 하나도 모르겠거든요...

채우기로 하면 그냥 다 하얗게 나오기 때문에 와이어프레임으로 해놨습니다..
텍스쳐를 붙이면 좀 나아지겠지만 그 다음부터가 진도나가기 쉽지 않네요..
어쨌든 결과물을 올립니다.. Managed DirectX 입문에는 약간 도움이 되지 않을까 하네요 -_-;;

'컴퓨터 프로그래밍 > Direct3D' 카테고리의 다른 글

Direct3D projection Effect  (0) 2009.12.02
[C# + MDX 프로그래밍] HLSL  (0) 2008.12.17
3DS Viewer 만들기 (미완성)  (0) 2008.10.30
Posted by orange code
TAG 3ds, c#, Direct3D

티스토리 툴바