본문 바로가기

DirectX9

XMVector3TransformCoord에 대하여 XMVector3TransformCoord DirectX 프로그래밍을 하다가 마주친 XMVector3TrasformCoord 함수. 예제를 생각없이 따라치다가 무슨 기능을 하는지 갑자기 궁금해져 찾아 보았다. MSDN에 의하면 Transforms a 3D vector by a given matrix, projecting the result back into w = 1. 즉, 3D벡터를 주어진 메트릭스로 변형하는 함수라고 한다. 카메라의 위치나 특정 벡터를 회전하거나 이동하거나 할때 바로 이 함수를 쓸 수 있다. 3D벡터를 주어진 변환행렬을 곱하여 변환된 백터를 리턴한다. 참고: https://docs.microsoft.com/en-us/windows/win32/api/directxmath/nf-direc.. 2020. 6. 4.
DirectX11 3D 엔진 구현하기 데모 영상 요즘 DirectX11을 공부해 보면서 엔진마냥 구현해 보고 있습니다. 현재까지 구현사항은 다음과 같습니다. OBJ 3D모델 로딩 텍스처 맵핑 난반사, 정반사 쉐이더 3D모델 객체화 모델별 트랜스폼 1인칭 카메라 https://github.com/lucidmaj7/directx11test GitHub - lucidmaj7/directx11test: directx11test directx11test. Contribute to lucidmaj7/directx11test development by creating an account on GitHub. github.com 2020. 6. 1.
정반사 (Phong model) HLSL 구현 / 렌더몽키(RenderMonkey) 이번 포스팅은 정반사 쉐이더 구현에 대한 내용입니다. 정반사 쉐이더 모델에는 여러가지가 있는데 주로 게임에서 쓰이는 퐁 반사 모델(Phong model)에 대해서 공부해 보았습니다. 정반사 쉐이더의 핵심 원리는 바로 입사각과 반사각은 같다 라는 초등학교때 배운 내용입니다. 거기에 보는 사람의 각도에 따라서 정반사 광이 결정된다는 원리를 더 해보면 됩니다. 즉, 퐁 반사 모델을 정리해 보면 법선 벡터n에 대해 입사각l과 반사각 r은 같고 반사되는 빛의 양은 보는 사람의 각도와 반사광 r과 이루는 각도에 따라서 결정되는 모델입니다. 이때 cos 세타 값의 거듭제곱수 많큼 더 반짝거리는 정반사를 구현할 수 있습니다. (아래 그림처럼 n값이 커질수록 반사되는 영역이 타이트해집니다) 렌더몽키 설정 gWorldLi.. 2020. 6. 1.
난반사 HLSL (람베르트 반사) 쉐이더 / 렌더몽키(RenderMonkey) 0. 람베르트 난반사 오늘 공부해볼 HLSL은 조명 구현 중에서 난반사에 대한 것입니다. 난반사는 어느 각도에서 보던 고르게 반사되는 반사를 말합니다. 예를 들면 나무로된 탁자의 표면, 흰종이를 들을 수 있겠습니다. 컴퓨터 그래픽에서도 이러한 난반사를 계산하여 표현하고 있는데 일반적으로 람베르트 코사인 법칙( Lambert's cosine law)을 이용하고 있습니다. 람베르트의 난반사 법칙은 표면의 법선 벡터와 입사광이 이루는 벡터의 코사인 값이 반사되는 광량이라고 정의를 내리고 있습니다. 코사인 그래프를 보면 0에서 1 90도에서 0을 나타내고 있습니다. 즉, 빛을 수직으로 비추면 가장 밝은 빛이 난반사 된다는 것을 나타내며 0도에 가까워 질수록 반사되는 빛의 양이 감소합니다. 그럼 이러한 개념을 가.. 2020. 5. 28.
쉐이더프로그래밍 / 렌더몽키 RenderMonkey를 설치해보자 DirectX11을 공부하는데 계속 나오는 Shader. 예제 코드를 따라 쉐이더를 작성하면 화면에 삼각형도나오고, 빨간색 삼각형, 큐브.. 조명까지.. DirectX11프로그래밍에서 Shader를 작성하지 않으면 화면에 뿌릴수가 없는 것 같습니다. 학부시절 OpenGL로 컴퓨터그래픽스를 배웠으나 쉐이더 같은건 작성하지 않아도 잘만 나왔었는데 DirectX11로 오니까 뭐만 하려면 Shader를 작성했습니다. Shader가 궁금해서 찾아보다 평소에 즐겨보던 포프TV의 포프님의 블로그에서 포프님의 강좌를 발견! DirectX는 잠시 두고 Shader를 좀 공부해볼까 합니다. 그 첫 과정으로 RenderMonkey를 설치하라고 하십니다. RenderMonkey는 AMD사에서 제공하는 쉐이더 작성도구로 쉐이더.. 2020. 5. 16.
포프의 셰이더 프로그래밍 입문 포프김 님이 쓰신 셰이더프로그래밍입문이 나오기전 잠시 책의 내용을 블로그에 올리셨던 강좌 입니다. https://kblog.popekim.com/p/blog-page_1.html 셰이더 입문 한빛미디어, 셰이더 프로그래밍, 입문, 책, 도서, 김포프, 포프김, Pope Kim, 게임프로그래머, 게임제작 kblog.popekim.com 현재 절판이라 구할 수는 없어 이렇게나마 볼 수 있어 다행입니다. 2020. 5. 16.
DirextX 11 텍스처 로드 D3DX11CreateShaderResourceViewFromFile 대체하기 (DirectTex) D3DX11CreateShaderResourceViewFromFile 요새 DirectX 11튜토리얼을 www.braynzarsoft.net/ 보면서 따라하고 있습니다. 오늘 공부한 튜토리얼은 텍스처입니다. 저는 Visual Studio 2019에서 Windows 10 SDK만 가지고 DirectX를 공부하고 있어 기존에 DirectX SDK에서 쓰이는 라이브러리를 쓰지 않아 약간 차이점이 존재했습니다.(Windows 8부터 DirectX SDK가 Windows SDK에 포함됨) 튜토리얼은 Windows 8 이전의 개발환경 기준으로 설명되어 있기 때문에 약간 변형이 필요했는데 이번에 텍스처 튜토리얼에서 텍스처 파일을 쉐이더리소스로 불러오는 함수 D3DX11CreateShaderResourceViewFro.. 2020. 5. 10.
다이렉트X(DirectX) 튜토리얼 제공 사이트 모음 다이렉트X튜토리얼을 제공한다. http://www.rastertek.com/ RasterTek - DirectX 10, DirectX 11, and DirectX 12 Tutorials The purpose of this website is to provide tutorials for graphics programming using DirectX 10, DirectX 11, and DirectX 12. The DirectX tutorials are written using C++ with HLSL and use shader version 4.0, 5.0, and 5.1. I also have tutorials for different p www.rastertek.com https://www.braynza.. 2020. 5. 1.
www.directxtutorial.com 다이렉트x 튜토리얼을 제공함. http://www.directxtutorial.com/ DirectXTutorial.com DirectX 11.2 now has it's own set of lessons. It is very similar to the DirectX 11.1 lessons, but features Universal Apps, meaning you can port the code to Windows Phone devices very easily. Next up I plan to add a section for model rendering for DirectX 1 www.directxtutorial.com --- 이제 삼각형좀 그리나 했더니 돈내라고 한다. ..ㅎㅎㅎㅎ 첫번재 튜토리얼 이후로.. 2020. 4. 30.