http://msdn.microsoft.com/en-us/library/ms886501.aspx
http://msdn.microsoft.com/en-us/library/ms886612.aspx
정리하기 위해서 우선 이 두 글이 필요하다.
SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
첫 번재 링크 문서에 따르면 MODULATE 연산은 인자끼리 곱해버리는 연산이다.
.
.
아마 255를 1로, 0을 0으로 변환해서 곱하는 것 같다.
가정이 맞다면
만약 곱해지는 인자가 255,255,255 였다면 아무런 변화도 일어나지 않고
만약 곱해지는 인자가 0, 0, 0 이었다면 검은색 화면만 보일 것이다.
원래색을 어둡게 하거나 혹은 유지시키는 연산이다.
Diffuse값을 변화시킴으로써
텍스처에 색깔 효과나 알파 조절 효과를 도모할 수 있는 방식인 것 같다.
http://msdn.microsoft.com/en-us/library/ms886612.aspx
정리하기 위해서 우선 이 두 글이 필요하다.
SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
첫 번재 링크 문서에 따르면 MODULATE 연산은 인자끼리 곱해버리는 연산이다.
.
.
아마 255를 1로, 0을 0으로 변환해서 곱하는 것 같다.
가정이 맞다면
만약 곱해지는 인자가 255,255,255 였다면 아무런 변화도 일어나지 않고
만약 곱해지는 인자가 0, 0, 0 이었다면 검은색 화면만 보일 것이다.
원래색을 어둡게 하거나 혹은 유지시키는 연산이다.
Diffuse값을 변화시킴으로써
텍스처에 색깔 효과나 알파 조절 효과를 도모할 수 있는 방식인 것 같다.




덧글