본문 바로가기
빌보드(Billboard)를 만들어 봅시다 3부. 마무리해 봅시다 / HLSL버전 이제 오브젝트 스페이스의 이동과 회전을 만들어 봅시다 . 노드에서는 아주 쉽습니다. 걍 오브젝트 노드가 따로 있어서... 포지션과 스케일이 있으므로 이걸 이용하면 됩니다. 요렇게 말이죠 . 스케일은 곱해주고 이동은 더해주면 됩니다. (Q :월드 공간이라면서 거기에 오브젝트 공간 이동 더해주면 되나요?A : 아니 사실 OS 공간인데 우리가 억지로 월드공간으로 정해버린거라서 상관없어요)그러면 이제 이동과 스케일까지 다 적용되면서 빌보드도 적용됩니다. 셰이더만 언릿으로 해주면 완벽.   HLSL 버전도 없으면 서운하겠죠? 개념은 동일합니다. 똑같이 짜주면 되어요주석에 써 놨고 연산순서도 노드랑 똑같이 해 봤습니다 (굳이)Shader "BillboardHLSL1"{ SubShader { .. 2024. 7. 28.
빌보드(Billboard)를 만들어 봅시다 2부. 이제 진짜 만들어 봅시다 에고에고. 사전설명으로 글 하나를 써버렸네요. 어쩔 수 없지. 그럼 이번엔 다시 또 이어서 해 봅시다. '월드' 에서 '뷰' 행렬로 바꾸는건 이동을 생각 안하면 회전뿐이고, 심지어 물체가 뷰.. 즉 카메라 방향의 '반대편' 으로 회전하는 것을 말하는 것이다! 라는게 지난 글의 요약이었는데요 뭐 좋아요. 그럼.이번에는진짜 해보죠빌보드를 만들어 봅시다 여기 일단 월드 좌표계에서 놀고 있는 박스가 있단 말예요이젠 우린 알죠 . '우리는 뷰 좌표계에서 저 놈을 기울어진것처럼 바라보고 있지만, 저 놈은 월드 좌표계 기준에서 보면 똑바로 있는거다' 후후 좋아요. 그럼 셰이더 그래프를 열고.. 아래처럼 해 줍시다. world position을 받아올 거예요. 그리고 쓸데없는 split과 combine을 거치죠? 저건.. 2024. 7. 28.
빌보드(Billboard)를 만들어 봅시다 1부. 변환 행렬의 비밀 와! 몇개월만의 부활! 허리가 이젠 좀 괜찮아져서.. 흑흑 책상에 앉아 봅니다. 앉은김에 가볍게 뭣 좀 해보죠.  오늘 볼 것은 바로 빌보드 (Billboard) 인데요,이걸 설명하기 전에 알아야 할 지식이 좀 있습니다. 버텍스 셰이더의 MVP 변환에 대해 아셔야 해요. 다른 말로 하면 렌더링 파이프라인.  렌더링 파이프라인 : 버텍스 변환나중에 다시 설명할 날이 있을지도 모르겠지만 지금 필요하니까 간단히 설명을 하자면 이 변환은 로컬 좌표계 -> 월드 좌표계 -> 카메라 좌표계 -> 프로젝션 좌표계로 변환하는 것을 의미하는데요 로컬 좌표계 물체가 가지고 있는 고유의 좌표계를 의미합니다. 이 상황에서 물체는 자기 피봇점이 0,0,0 포인트이며, 자기 자신이 즉 좌표계입니다.  월드 좌표계 물체는 더이상 .. 2024. 7. 27.
Sprite-Lit-Default 셰이더 적용 오브젝트 회전시 조명 방향 문제 해결 Fix lighting direction issue when rotating object with Sprite-Lit-Default shader applied 2D Game을 만들때 가장 많이 사용되는 셰이더인 Sprite-Lit-Default 셰이더를 사용해서 캐릭터 애니를 할 때, 유니티 내장된 2D 애니메이션 에셋으로 캐릭터를 만들면, 가끔 좌우 반전이 필요할 때가 있죠. 그럴때 많이 사용하는 방식이 캐릭터를 180도 Y 축으로 회전해서 사용하는 방식인데, 그렇게 할 때 조명 문제가 생기곤 합니다. 아래 그림을 보시면 왼쪽이 회전하지 않은 원본, 오른쪽이 Y를 180도 회전한 캐릭터. 조명은 시계 방향으로 그런데 보시면 오른쪽의 180도 돌아간 캐릭터의 조명을 보시면, 시계 방향이 아니라 반시계방향으로 조명이 돌고 있지요. 허벅지 부분에 조명 돌아가는걸 보시면 잘 볼 수 있습니다. 이렇게 캐릭터를 Y 로 180도 회전 시켰을때 노말이 틀어지면서 조명 문제.. 2021. 10. 12.
유니티에서 오브젝트의 그림자가 끊어지는 현상 간만에 학생작품에서 테크니컬 아트 이슈가 올라왔네요 . 얼마만이냐 +_+  일단 이슈는 이것입니다. '그림자가 끊어져요!!!'  흠. 끊어지네요 정말로. 뭐 저기서 면을 지우거나 하진 않았을테고. 그래서 파일을 받아다가 분석해 봤습니다.  의외로 답은 빨리 나왔는데,  면이 모두 하드엣지입니다 [각주:1] 일반적으로 게임에서는 여러 가지 이유로 하드엣지를 기피하는 편입니다만, 이것도 그 이유중 하나죠. 뭐 쓸 때는 써야 합니다만 좀 귀찮은 일이 일어나서, 가급적 안 쓰도록 고려해야 한다는게 문제입니다. 보통 챔퍼로 엣지를 나눌 때에는 하드엣지를 쓰지 않으려고 - 스무싱그룹을 통일하려고 - 나누는데, 이 모델링은 특이하게도 챔퍼가 모두 하드엣지네요.     뭐 좋습니다. 그럴 수도 있지요. TA는 그래픽분.. 2020. 6. 5.
반응형