yuchi's Development Home
글 수 694
cuda고 뭐고...
내 본업이 게임쪽 일인데 일단 그림자가 허접하게 보인다는 자체로 쪽팔린다.
내 밥그릇도 제대로 못챙기면서 뭔 얼어죽을 남의 분야람.
해서 개선하기로 결심.
낮에는 진도를 나가고 퇴근시간 후나 주말 시간을 이용할 생각이다.
PSM,LiPSM,TSM등을 살펴보고 CSM과 VSM등도 찾아봤는데 일단 CSM,VSM은 나중에 추가로 적용해도 될 부분이고 현재 오소그래픽으로 구현해놓은 쉐도우맵을 LiPSM으로 수정해야겠다고 결심했다.
실로 오랫만에 nVidia SDK를 다운받았다. version 10은 dx10용이라 패스.
9.5.2를 다운받았는데 설치가 안된다. 64비트라고 거부하네.
노트북에다 인스톨 한 후에 폴더 째로 카피해서 들고왔다.
nVidia정말 이런 바보짓 할래?
PSM예제를 찾아서 돌려보려했다.
근데...
컴파일이 안되.T_T
시부럴.
2005년까지만해도 vs2003으로는 몽땅 컴파일했던 기억이 있는데, 현재는 때려죽여도 컴파일이 안된다.
할 수 없지. 달도 차면 기우나니... nVidia도 망할때가 됐나보다.
일단 필요한건 그림자쪽 자료니까 ATI홈피에서 자료를 뒤졌다.
이럴수가 놀랍도다.
개발자용 자료가 이렇게 없다니. 과거엔 정말 자료가 없었고, 이제는 좀 나아졌겠거니 했는데 아직도 이 모양이네.
왜 ATI가 개발자에게 지지받지 못했는지 알것 같다.
할수 없이 다시 nVidia sdk에서 원하는 샘플을 컴파일 하려고 시도.
manifest관련된 문제가 첫번째고, stl의 호환성 문제가 둘째이고, 간단한 c++표준의 호환성 차이가 세번째, 프로젝트 파일의 세팅에도 문제가 있는듯한데 그게 네번째.
manifest문제를 해결하려고 싸그리 재컴파일을 하다보니 일단 nv_nvb.dll이 컴파일 안된다.
이녀석을 컴파일 하려고보니 c++규약의 호환성 문제가 걸린다.
코드는 고쳐서 다시 컴파일.
링크가 안된다.
몇 시간인가 뜯어보고서 커스텀 빌드 옵션에 문제가 있음을 확인했다.
존재하지도 않는 runrprojectbat.bat파일을 실행하려고 했던것.
이게 과거에 vs2003에선 어떻게 컴파일됐지?
아니지.사실은 그 당시엔 manifest가 들어가지 않았기 때문에 sdk설치하고 nv_nvb.dll을 새로 컴파일 할 필요가 없었을것이다.
토요일 하루를 온통 소모하고나서야 겨우 컴파일이 가능해졌다.
자신있게 실행. 역시 안돌아간다. 이번엔 런타임시에 디버그 인터럽트 발생. fx파일로부터 D3DXEffect생성 실패.
D3DXCreateEffectFromFile()함수가 내부적으로 fxc를 사용하는데 fxc가 언젠가부터 쉐이더 픽셀쉐이더1.1 코드를 생성하지 않게 되었다...는 것을 아웃풋창을 보고 알았다. LD옵션을 사용하라는데, 장난해? 내가 지금 fxc를 직접 호출했냐고.--;
나야 늘 쉐이더 어셈블리로 직접 작성하는데다 D3DX함수는 거의 사용하지 않으므로 몰랐다.
fx파일에서 ps1.1코드들의 선언을 전부 2.0으로 바꿔주고 다시 시도.
psm,tsm은 돌아가는데 현재 관심이슈인 LiPSM을 선택하면 크래시.
따라가보니 stl 벡터코드에서 디버그 인터럽트 발생.
vs2008안에 들어있는 stl코드이니 그쪽 버그는 아닐테고 nVidia샘플에 문제가 있거나 디버그 브레이크를 거는 규칙이 바뀐 모양인데...
이래서 STL이 싫단 말야.
내가 짠것도 아니고 이게 뭔 문젠지 알아. 스벌.
하여간 것도 유닛큐브 클리핑을 빼서 문제되는 코드는 피해가도록 수정.
이제 대충 소스 코드를 분석중.
기본 개념은 대충 이해한것 같은데 코드의 세세한 부분에선 왜 그렇게 했는지 이해가 안되는 부분이 많다.
주석도 부실하고 문서는 더더욱 부실해서 안그래도 이해하기 어려운데, STL은 왜 이리 떡을 쳐놨냐. 코드 더 알아보기 힘들잖아.
막상 따라가보면 대단한 코드도 아니구만. c함수로 더 빠르고 깔끔하게 작성할 수 있는 코드들이다.
하여간.
그렇게 주말을 다 보냈다.
쪽팔리지 않도록 그림자만큼은 개선해보이겠어.
내 본업이 게임쪽 일인데 일단 그림자가 허접하게 보인다는 자체로 쪽팔린다.
내 밥그릇도 제대로 못챙기면서 뭔 얼어죽을 남의 분야람.
해서 개선하기로 결심.
낮에는 진도를 나가고 퇴근시간 후나 주말 시간을 이용할 생각이다.
PSM,LiPSM,TSM등을 살펴보고 CSM과 VSM등도 찾아봤는데 일단 CSM,VSM은 나중에 추가로 적용해도 될 부분이고 현재 오소그래픽으로 구현해놓은 쉐도우맵을 LiPSM으로 수정해야겠다고 결심했다.
실로 오랫만에 nVidia SDK를 다운받았다. version 10은 dx10용이라 패스.
9.5.2를 다운받았는데 설치가 안된다. 64비트라고 거부하네.
노트북에다 인스톨 한 후에 폴더 째로 카피해서 들고왔다.
nVidia정말 이런 바보짓 할래?
PSM예제를 찾아서 돌려보려했다.
근데...
컴파일이 안되.T_T
시부럴.
2005년까지만해도 vs2003으로는 몽땅 컴파일했던 기억이 있는데, 현재는 때려죽여도 컴파일이 안된다.
할 수 없지. 달도 차면 기우나니... nVidia도 망할때가 됐나보다.
일단 필요한건 그림자쪽 자료니까 ATI홈피에서 자료를 뒤졌다.
이럴수가 놀랍도다.
개발자용 자료가 이렇게 없다니. 과거엔 정말 자료가 없었고, 이제는 좀 나아졌겠거니 했는데 아직도 이 모양이네.
왜 ATI가 개발자에게 지지받지 못했는지 알것 같다.
할수 없이 다시 nVidia sdk에서 원하는 샘플을 컴파일 하려고 시도.
manifest관련된 문제가 첫번째고, stl의 호환성 문제가 둘째이고, 간단한 c++표준의 호환성 차이가 세번째, 프로젝트 파일의 세팅에도 문제가 있는듯한데 그게 네번째.
manifest문제를 해결하려고 싸그리 재컴파일을 하다보니 일단 nv_nvb.dll이 컴파일 안된다.
이녀석을 컴파일 하려고보니 c++규약의 호환성 문제가 걸린다.
코드는 고쳐서 다시 컴파일.
링크가 안된다.
몇 시간인가 뜯어보고서 커스텀 빌드 옵션에 문제가 있음을 확인했다.
존재하지도 않는 runrprojectbat.bat파일을 실행하려고 했던것.
이게 과거에 vs2003에선 어떻게 컴파일됐지?
아니지.사실은 그 당시엔 manifest가 들어가지 않았기 때문에 sdk설치하고 nv_nvb.dll을 새로 컴파일 할 필요가 없었을것이다.
토요일 하루를 온통 소모하고나서야 겨우 컴파일이 가능해졌다.
자신있게 실행. 역시 안돌아간다. 이번엔 런타임시에 디버그 인터럽트 발생. fx파일로부터 D3DXEffect생성 실패.
D3DXCreateEffectFromFile()함수가 내부적으로 fxc를 사용하는데 fxc가 언젠가부터 쉐이더 픽셀쉐이더1.1 코드를 생성하지 않게 되었다...는 것을 아웃풋창을 보고 알았다. LD옵션을 사용하라는데, 장난해? 내가 지금 fxc를 직접 호출했냐고.--;
나야 늘 쉐이더 어셈블리로 직접 작성하는데다 D3DX함수는 거의 사용하지 않으므로 몰랐다.
fx파일에서 ps1.1코드들의 선언을 전부 2.0으로 바꿔주고 다시 시도.
psm,tsm은 돌아가는데 현재 관심이슈인 LiPSM을 선택하면 크래시.
따라가보니 stl 벡터코드에서 디버그 인터럽트 발생.
vs2008안에 들어있는 stl코드이니 그쪽 버그는 아닐테고 nVidia샘플에 문제가 있거나 디버그 브레이크를 거는 규칙이 바뀐 모양인데...
이래서 STL이 싫단 말야.
내가 짠것도 아니고 이게 뭔 문젠지 알아. 스벌.
하여간 것도 유닛큐브 클리핑을 빼서 문제되는 코드는 피해가도록 수정.
이제 대충 소스 코드를 분석중.
기본 개념은 대충 이해한것 같은데 코드의 세세한 부분에선 왜 그렇게 했는지 이해가 안되는 부분이 많다.
주석도 부실하고 문서는 더더욱 부실해서 안그래도 이해하기 어려운데, STL은 왜 이리 떡을 쳐놨냐. 코드 더 알아보기 힘들잖아.
막상 따라가보면 대단한 코드도 아니구만. c함수로 더 빠르고 깔끔하게 작성할 수 있는 코드들이다.
하여간.
그렇게 주말을 다 보냈다.
쪽팔리지 않도록 그림자만큼은 개선해보이겠어.