본문 바로가기

유니티/Catlikecoding

(8)
[렌더링] 셰이더 기초 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - 정점 변형 - 컬러 픽셀 - 셰이더 프로퍼티 활용하기 - 버텍스에서 프래그먼트로 데이터 전달하기 - 컴파일된 셰이더 코드 검사 - 타일링 및 오프셋을 사용하여 텍스쳐 샘플링 1. 기본 씬 Unity에서 새 씬을 생성할 떄 기본 카메라와 디렉셔널 라이트로 시작합니다. 씬에 구를 추가하고 원점에 배치한 다음 카메라를 바로 앞에 배치합니다. 이 씬은 매우 단순한 장면이지만 이미 많은 복잡한 렌더링이 진행 중입니다. 렌더링 ..
[렌더링] 행렬 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - 큐브 그리드를 만듭니다. - 크기 조정, 위치 지정 및 회전을 지원합니다. - 변환행렬로 변형을 수행합니다. - 간단한 카메라 투영을 생성합니다. 렌더링에 기본에 대한 튜토리얼 시리즈의 첫 번째 파트입니다. 변환 행렬을 다룹니다. 렌더링 시리즈를 본격적으로 시작하기에 앞서 절차적 그리드로 시작하는 메시 기본 시리즈를 살펴봅니다. 그러면 메시가 어떻게 작동하는지 이해할 수 있습니다. 이 시리즈에서는 이러한 메시가 실제로..
[메시 기초] 메시 변형 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - 물체에 광선을 투사하고 디버그 라인을 그립니다. - 힘을 정점의 이동량으로 변환합니다. - 스프링과 댐핑으로 형태를 유지합니다. - 오브젝트의 변형을 보정합니다. 1. 씬 설정 중앙에 하나의 큐브 구체가 있는 씬부터 시작하겠습니다. 변형을 제대로 테스트 하기 위해서는 구에 적절한 수의 정점이 포함되어야 합니다. 구의 격자 크기를 20으로 설정하고 반지름을 1로 설정했습니다. 2. 매시 변형 변형을 처리할 'MeshDe..
[메시 기초] 큐브 구체 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - 정육면체를 구체로 변환합니다. - Unity에서 매핑을 시각화합니다. - 변환을 비판적으로 검토합니다. - 수학을 사용하여 더 나은 접근 방식을 생각해 보세요 1. 둥근 큐브 조정하기 지난 튜토리얼에서 둥근 큐브로 완벽한 구를 만들 수 있다는 것을 눈치 채셨을 것입니다. 큐브의 세 차원의 값을 모두 같은 값으로 변경하고 Roundness를 해당 크기의 절반으로 설정합니다. 만약 이 컴포넌트로 얻고 싶은 메시가 구라고 ..
[메시 기초] 둥근 큐브 렌더링 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - 큐브에 둥근 모서리를 추가합니다. - 법선을 정의합니다 - 서브 메쉬를 사용합니다 - 사용자 지정 셰이더를 만듭니다. - 프리미티브 콜라이더를 결합합니다. 1. 큐브 합성하기 평범한 큐브는 그렇게 특별하지 않습니다. 둥근 큐브로 만들어 봅시다. 둥근 큐브로 만들어봅시다! 스크립트 파일과 클래스 이름을 RoundedCube로 변경합니다. Unity는 컴포넌트를 계속 추적하지만 연결이 끊어지면 스크립트를 다시 드래그해서 ..
[메시 기초] 큐브 렌더링 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - seamless mesh로 큐브를 만듭니다 1. 큐브 합성하기 2D 격자 문제를 해결한 다음 단계는 3D 구조를 절차적으로 생성하는 것입니다. 큐브를 살펴보겠습니다. 개념적으로 큐브는 3D 볼륨을 둘러싸도록 배치되고 6개의 2D면으로 구성됩니다. 그리드의 6개의 인스턴스로 이 작업을 수행할 수 있습니다. 이렇게 하면 6개의 개별 메쉬로 구성된 큐브가 생깁니다. 보기에는 괜찮지만 실용적이지는 않습니다. Mesh.Comb..
[메시 기초] 절차적 그리드 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 요약 - 점으로 그리드를 만듭니다. - 코루틴을 사용하여 점의 배치를 분석합니다. - 삼각형으로 표면을 정의합니다. - 법선을 자동으로 생성합니다. - 텍스처 좌표와 탄젠트를 추가합니다. 이 튜토리얼에서는 정점과 삼각형으로 구성된 간단한 그리드를 만들어 보겠습니다. 1. 렌더링이란 유니티에서 무언가를 시각화하려면 메시를 사용합니다. 이것은 다른 프로그램에서 익스포트한 3D모델일 수도 있고, 유니티에서 절차적으로 생성된 메시일 수도 있습니다. 스프라이트, UI, 파티클 시스템도 메시를 사용할 수 있으며, Unity에서도 메시를 사..
[의사난수노이즈] 해시 - 시각화(Catlikecoding) 튜토리얼에 포함된 내용이 아니고 제가 추가한 내용은 밑줄로 표시했습니다. 사물을 예측할 수 없고 다양하며 자연스럽게 보이게 하기 위해서는 무작위성이 필요합니다. 이것이 정말로 무작위인지 아니면 정보 부족이나 관찰자의 이해로 인해 그렇게 나타나는지는 중요하지 않습니다. 그래서 이 무작위성을 결정적이며 완전한 무작위가 아닌 것으로 만들 수 있습니다. 잘못 설계된 다중 스레드 코드는 경쟁 조건(race conditions)으로 이어져 예측할 수 없는 결과를 초래할 수 있지만, 이는 신뢰할 수 있는 임의성의 소스가 아닙니다. 진정하게 신뢰할 수 있는 무작위성은 일반적으로 사용할 수 없는 대기 잡음을 샘플링하는 하드웨어와 같은 외부 소스에서만 얻을 수 있습니다. 진정한 무작위성은 일반적으로 바람직하지 않습니다. ..