d3d11

·D3D11
필요한 준비물환경맵 텍스쳐를 그려줄 육면체환경맵 텍스쳐육면체 그리기먼저, 육면체를 그리기기 위해서는 사각형을 그려줘야 한다. 사각형이란 면으로써 점이 선을 이루어 그리는 것이다. 특히, rasterize환경에서는 사각형은 삼각형 두 개의 모습으로써 구성된다.사각형을 그릴 때 중요한 특징은 해당 면의 왼쪽 아래부터 그린다는 점이다. 이는 D3D가 왼손좌표계인 것도 이지만, 더욱 중요한 것은 NDC가 왼쪽아래부터 시작한다는 점이다. 이러한 영향으로 인해 그림을 그릴 때 왼쪽 아래 좌표부터 그리는 것이 자연스러운 것이 되었다고 이야기 한다.사각형은 면이 하나이므로 왼쪽 아래 부터 시계방향으로 삼각형을 그리는 것을 가정하면 그리기 간단하다.글로 쓴다면, 왼쪽 아래 -> 왼쪽 위 -> 오른쪽 위 -> 오른쪽 아래..
·D3D11
Texture2D 데이터를 언제 GPU로 옮기는 것일까?Constants Buffer는 ~SetConstantBuffers()함수로 통해서 설정하기만 하면 된다.상수 버퍼는 프로그램 가능 셰이더 단계들에 연결하고 HLSL에 접근하는 버퍼이지만, 그 내용을 자원 뷰가 다르게 해석해야 할 여지는 없다. 따라서, 그대로 노출되는 상수버퍼는 자원 뷰를 사용할 필요가 없다.HLSL 안에서 상수 버퍼는 cbuffer라는 키워드를 이용해서 선언하는 구조체에 대응된다.그렇다면 Texture2D는 어떻게 해야할까?SRV를 통해서 등록해서 사용해야 한다. 그럼 어디서 SRV에 등록해야할까? 해당 코드에서 볼 수 있듯이, 모델을 불러오면서 SRV를 초기화해주는 것을 알 수 있다.if (!meshData.albedoTextu..
·D3D11
왜 물체 이동시 느리게 이동되는거지?$ ViewMat*ProjMat $ 가 되어야 하는데 반대로 곱함으로써 행렬곱의 계산이 엉뚱하게 되어서 그랬던 것이다.이동 원리화면에 마우스 클릭 시 Ray를 발사해서 물체와 닿은 것을 체크해 물체의 이동 거리를 측정하는 방법이다.내가 닿은 지점은 pickPoint = cursorWorldNear + dist * dir이다.특이한 부분이 하나 있는데, Ratio를 구한다는 것이다. prevRatio = dist / (cursorWorldFar - cursorWorldNear).Length()파란색 dist를 구하는 것이 해당 그림의 목표이다. 해당 값을 구해서 이동한 위치를 알아내는 것이다. 해당 식은 비례식을 이용한다.$$ PrevDist : (PrevCursorWo..
Koala Jung
'd3d11' 태그의 글 목록