본문 바로가기
Shader

벽 뒤에 가려질때 라인 나오는 셰이더 (Hidden line shader)

by 대마왕J 2017. 8. 24.


이걸 해보죠 ㅋ




일단 세 개가 필요합니다 



아래처럼요 


그리는 순서를 지정합니다.  순서는 1 -3 -2 순서입니다. 벽부터 그리고 , 회색 캡슐 그리고, 마지막에 빨강 캡슐을 그리게 해 줘요 



빨강 캡슐은, 저한테 셰이더 강의 들었던 학생들이라면 몽땅 다 알고 있는 그 외곽선 방식입니다. 뒤집은거요. 



하지만 사실은 안 뒤집어도 돼요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 왠지는 나중에 생각해 보세요 

지금은 보기 편하게 그냥 뒤집었을 뿐이예요


자 그럼 



이렇게 되는게 당연하겠죠?




일단 우리가 먼저 할 일은


Ztest를 이용해서 빨강 공을 '언제나 앞으로 나오게' 만드는 거예요 


빨강 애의 Z 값은 가장 멀리 있어서 가장 크거든요? 근데 지금은 '작거나 같을때' 로 되어 있어서 저렇게 보이는 거예요 


뭐 다른 것도 되지만, 과감하게 '언제나' 옵션으로 해서 꼭 보이게 만들죠 




와, 뒤에 있는데 앞에 찍히게 되었어요. 그야말로 Z버퍼고 나발이고 그냥 언제나 찍어버리는 깡패짓을 한다는 거니까요 


그럼 이제 저 앞에 있는 벽 ( 플렌) 한테 뭔가 해 줘야 해요 



이렇게 해 줍니다. 벽은 지금 스탠실 1번을 찍고 있게 되었어요. 

스텐실은 몽땅 통과하고, 통과한 녀석은 1을 찍게요 


사실 전부 다 리플레이스로 해도 될거예요. 필요에 따라 하도록 하죠 



그럼 뭐 일단... 벽 있는데는 1번이란거 알겠죠? 


그럼 쉬워요 


빨강 캡슐을


"내가 1번인데! 마! 내가 ! 응! 너네 1번하고! 막 똑같이! 번호가 같으면 그리고! 응! 마! "


그렇게 셋팅하면 됩니다. 


1번 버퍼일때만 그리라고... 


그럼 다른데서는 안그려집니다. 


이래서 첨에뒤집는 것도 의미 없었음 ㅋㅋㅋ




그럼 이케 됩니다 뾰뿅




이것도 쓸만 하긴 한데... 외각선만 나왔으면 하는 생각이 있죠?


그러면 이렇게 하면 됩니다. .



저 흰 캡슐을요 



" 내가 2번인데!! 뭐..!! 그리는건... 비교고 뭐고 다 그릴끼다!!! (물론 Z값에 가려지면 가려지지만) "

"하여간! 그런데... Z Fail(Z값 땜에 안그려지는 사태) 가 나면!! 그 부분은 내가 버퍼를 2로 만들끼다!!!"


이것입니다. 


그렇게 하면 캡슐 부분은 2가 되니까 


빨강 캡슐은 흰 캡슐 부분을 그릴 수 없게 됩니다. 



즉 이렇게 되어서 





짜잔



이건 일단 뒤로 가려졌을때 쓸만하겠구요 

혹은 뭐 x레이 투시할때도 쓸만하겠네요 




반응형

댓글