posted by cimple 2013. 3. 26. 17:01

Mental-ray shader programming Start-up link:

http://acaciaecho.wordpress.com/2011/04/15/mental-ray-shader-writing-startup/


위 사이트에 기본적인 쉐이더를 컴파일하는 방법이 잘 나와있는데, 이를 위해서는 MSVC 를 이용한 명령줄 컴파일을 할 수 있어야한다.


맨 아래에 소스코드 링크를 받아 보면 소스코드와 함께 배치파일이 들어 있는데, 이것이 컴파일을 하게 만들어 주는 명령행을 배치파일 형태로 만들어 둔 것이다.




대략 이런식으로 되어 있는 파일인데, 이 한줄 한줄의 명령어를 VS 명령 프롬프트(x64) 로 실행하면 각각 컴파일 및 링크가 되는 것이다. 


그런데 IDE 를 활용하지 않다 보니 낯설기도 하고, 추가 포함 디렉토리나 추가 라이브러리 디렉터리 등을 설정해 주는 법을 몰라 좀 헤매었다.


사실 이 명령은 VS 의 속성 페이지에 들어가보면 '명령줄' 에서 확인해 볼 수 있는 것이다. 우리가 속성 창에서 이리저리 조작하는 것이 결국은 이 컴파일하는 cl 과 링크하는 link 명령의 파라미터들을 조정해 주는 행동이라는 것.



그래서 여기에 나오는 옵션대로 내가 원하는 환경변수 등을 추가해 줄 수 있는 것이다. 


include 디렉토리를 추가해 주는 것은, 배치파일에 다음과 같은 set 명령행을 추가해 주는 것으로 추가하였다. 아마 링크에 대한 설정도 비슷하게 될 것 같은데 시도해보지 않아서 패스...



좌우지간 이런 식으로 패스등을 설정해서, VS 명령 프롬프트(x64) 를 실행시키고, 해당 배치파일이 있는 디렉토리로 들어가서 배치파일을 실행시키면 컴파일이 된다. obj 파일 및 dll 파일이 튀어나오는데 dll 파일, 그리고 소스코드와 함께 주어진 mi 파일 등을 Maya mentalray 디렉토리에 있는 정확한 위치에 잘 복사해주면 된다.


위 사이트에서 위쪽 부분에 있는 public source 링크를 받아보면 이미 멘탈레이 쉐이더에 포함되어 있는 쉐이더들의 소스코드 및 mi 파일들이 나온다. 똑같이 세팅해서 컴파일해서 확인해볼 수 있는데, 단 이때 같은 node 이름으로 쉐이더가 마야에 등록되어 있다면 dll 이나 mi 이름을 바꾸어 넣더라도 멘탈레이 쉐이더로 등록이 안된다. 테스트 해보고 싶으면 원래 있던 dll, mi 를 백업해놓고 지운 다음에 테스트해보도록.






위의 것은 다 차치하고, Visual Studio 에 Metal-ray 용 프로젝트를 만드는 방법도 있다. 이러면 간단히 Maya devkit 에 있는 include 와 library 디렉토리를 지정해주고 라이브러리 두개를 import 하는 것으로 세팅을 끝마칠 수 있다.


이 세팅 방법은 다음 링크에서 확인해 볼 수 있다.


http://pixelsorcery.wordpress.com/2010/08/25/writing-mental-ray-shaders-from-scratch-for-maya/


컴파일 해서 사용하면 잘 된다.