DirectX49 230118_ConstantBuffer 삼각형 각각의 점 순서 점 순서(배열의 순서)를 지정할 때 그 위치가 그리려는 도형의 시계방향이냐 아니냐가 중요하다 레스터라이저단계에서 앞면 혹은 뒷면을 판단하고, 백페이스컬링 이라고 해서 뒷면을 제거하는데 벡터 외적의 결과에 따라 앞면, 뒷면이 결정되고 벡터 외적을 구하는 과정에서 시계방향, 반시계방향이 중요하기 때문 *버텍스쉐이더에서 픽셀쉐이더로 넘어갈 때 레스터라이저에서 보간된 값이 넘어간다 상수 버퍼란? GPU에 값을 넘겨줄 수 있는 버퍼를 상수 버퍼라고 한다 인덱스 버퍼 사용 시 주의 할 점? 인덱스 버퍼를 사용하면 렌더타겟에 그릴 때 Draw가 아닌 DrawIndexed 함수를 사용해야 한다 쉐이더란? 물체를 어떤 방식으로 그릴건지 모은 집합을 쉐이더라고 한다 2023. 1. 18. 7. Component 유니티에서 보면 컴포넌트 개념이 있다 ex) Box Collider, Camera, Cube 등 유니티에서 Cube란 여러 컴포넌트들을 합쳐서 만들어진 무언가 -> 아무것도 없는 GameObject에 컴포넌트를 쌓아서 Cube를 만들 수 있음 일례로 행동을 정의하려면 MoveBehaviour를 상속받고 여기에 Update에서 움직임을 정의한다 -> MoveBehaviour는 한마디로 스크립트라고 해석됨 컴포넌트패턴은 부품을 다 조립해서 결과물을 만드는 것 이것이 유니티가 언리얼과 차별화된 부분 유니티는 빈 깡통에서 시작한다면, 언리얼은 기본적으로 메쉬 자체를 가지고 있다. - 컴포넌트의 종류 Transform : 현재 오브젝트의 위치를 나타내는 컴포넌트 MeshRenderer : Material과 Mes.. 2023. 1. 18. 6. Material 기존 방식으로는 물체를 만들 때 Shader, Texture, Mesh를 외부에 선언해서 합쳐주는 방식으로 사용했었음(테스트 목적) 그런데 이렇게 하면 물체가 많아지면 감당할 수 없음 그럼 하나의 객체에 묶어줘야 하나? 반은 맞다 하나의 묶어주는 대신 Material이라는 객체를 별도로 파서 같은 성질을 가진 객체들은 그 Material을 적용하는게 좋음 즉, Material은 쉐이더에서 관리하는 인자들을 모아서 하나의 클래스로 관리하는 것이다. *Material을 추가하면서 발생하는 변경점 1. ConstantBuffer의 Init에서 어떤 레지스터에 사용할 것인지를 넣어준다 ->Transform 용도, Material 용도 등 ->Init 함수에서 enum class를 받는데, 그 이유는 용도에 따라.. 2023. 1. 18. 5. Depth Stencil Buffer/View 투영이란? 원근법에서는 깊이는 어떻든간에 비율로 보겠다는 것 그렇지만 깊이도 무시할 수 없다 깊이값에 따라 어떤 사물은 가려지고 어떤 사물은 그려지기 때문 DX12에서는 깊이값에 따라 물체를 그려야 할지 말아야 할지를 결정함 (정확히는 물체보다는 픽셀 단위) 스텐실이란? 판에 구멍을 뚫고 잉크를 통과시켜 찍어내는 공판화 기법 *깊이 스텐실 버퍼에 float로 값을 넣는데, 스텐실을 안쓴다면 4바이트를 전부 깊이값으로 쓰고, 스탠실을 쓴다면 3바이트만 깊이로 쓰고 남은 1바이트는 스텐실 값으로 쓴다 *스텐실 작업은 이 1바이트 값을 이용해 스텐실 값 n을 가진 픽셀에 한해서 추가적인 작업을 진행한다 *DepthStencilBuffer/View를 추가해서 바뀌는 부분 1. DepthStencilBuffer .. 2023. 1. 17. 이전 1 ··· 6 7 8 9 10 11 12 13 다음