전체 글64 [셰이더 프로그래밍] 03. 텍스쳐매핑 텍스처매핑과 UV좌표 앞에서 3D물체를 이루는 구성요소는 삼각형이며 정점 3개로 삼각형을 만들 수 있다고 설명했었다. 그렇다면 삼각형 위에 이미지를 입히려면 어떤 방법을 써야할까? 먼저 이 삼각형의 왼쪽 꼭짓점에 해당 이미지의 오른쪽 귀퉁이 픽섹을 출력할 것 같은 명령을 내릴 수 있어야 한다. 삼각형은 정점 3개로 이루어져 있기 때문에 각 정점을 텍스쳐 위에 있는 한 픽셀에 대응시켜주면 된다. 그럼 텍스쳐 위에서 한 픽셀은 어떻게 가리킬 수 있을까? 텍스쳐란 결국 이미지 파일임으로 X=60 Y=101 에 있는 픽셀이라고 정의하면 될까? 만약 이렇게 정의한다면 추후 이미지 파일의 크기를 2배 늘리면 이것을 다시 X=120 Y=202으로 바꿔줘야만 할 것이다. 좋은 방법은 아니다. 그렇기때문에 텍스쳐 또한 .. 2023. 5. 31. 07. 머터리얼 디테일 살펴보기 이쪽 내용을 살펴볼 것. Physical Material 이 머터리얼이 들어가있는 오브젝트를 의미한다 보통 바닥이나 바위 이런 곳이 많이 사용된다. Phys Material 이 머터리얼이 사용하는 피지컬 머터리얼이라는 뜻이다 상호작용해주는 물리같은걸 넣어준다고 생각하면 될 것 같다. 쉐이더가 이거까지 해준다고 싶지만 언리얼은 그런다고 한다. Phys Material Mask 사운드팀이나 기획팀이 연결요청할때 만지는 뭐시기라고 한다 Material Domain 이 머터리얼의 사용 용도를 결정하는 칸 surface : 일반적인 쉐이더 decal : 말 그대로 바닥에 붙이는 스티커 같은거 장판 효과같은거 만들때에도 사용가능 Light Function : 라이트 마스크 같은 느낌 자주사용하지는 않는다 Volum.. 2023. 5. 31. [셰이더 프로그래밍] 02. 진짜 쉬운 빨강쉐이더 렌더몽키에서 빨강색 공을 그리는 셰이더를 작성하고 그 결과를 .fx파일로 엑스포트 한 뒤 이걸 DirectX 프레임워크에 그대로 가져다가 사용할 것이다. struct VS_INPUT { float4 mPosition : POSITION; }; struct VS_OUTPUT { float4 mPosition : POSITION; }; float4x4 gWorldMatrix; float4x4 gViewMaatrix; float4x4 gProjectionMatrix; VS_OUTPUT vs_main(VS_INPUT Input) { VS_OUTPUT Output; Output.mPosition = mul(Input.mPosition, gWorldMatrix); Output.mPosition = mul(Outpu.. 2023. 5. 31. [셰이더 프로그래밍] 01. 셰이더가 무엇인가 셰이더의 정의 셰이더는 화면에 출력할 픽셀의 위치와 색상을 계산하는 함수이다. 3D 파이프라인을 간단히 설명하자면 [정점 셰이더] -> [레스터라이저] -> [픽셀 셰이더] -> [화면] 으로 되어있다. 정점 셰이더가 입력 값으로 받는 것은 3D모델 자체이다. 정점 셰이더가 수행하는 가장 중요한 일은 물체를 구성하는 정점들의 위치를 실제 화면 좌표로 변환하는 것 정점 셰이더는 3D 물체를 구성하는 정점의 수 만큼 실행된다. - 화면을 구성하는 최소 단위는 픽셀이다 레스터라이저는 정점 셰이더가 출력하는 그 정점의 위치를 차례대로 모아 도형을 만든 뒤 그 안에 들어간 픽셀들을 찾아내어 그려준다. 레스터라이저 과정은 얘가 찾아내는 픽셀 수 만큼 호출된다. - 픽셀 셰이더의 주된 일은 화면에 출력할 최종 색을 .. 2023. 5. 30. 이전 1 ··· 9 10 11 12 13 14 15 16 다음