1 . 외곽선 찾기과 양각 효과. 1. 외곽선 찾기과 양각 효과. 1. 컨벌루션. 2. 커널. 3. 소벨 연산자. 2. 초기화 함수.HRESULT CMainGame::Initialize(void) { if (FAILED(InitializeDevice())) return E_FAIL; if (FAILED(InitializeShader("ColorConversion.fx", &m_pEffect1))) return E_FAIL; if (FAILED(InitializeShader("NoEffect.fx", &m_pEffect2))) return E_FAIL; if (FAILED(InitializeShader("EdgeDetection.fx", &m_pEffect3))) return E_FAIL; if (FAIL..
1. 흑백, 세피아 사진 만들기. 1. 포스트 프로세싱. 2. 초기화 함수.HRESULT CMainGame::Initialize(void) { if (FAILED(InitializeDevice())) return E_FAIL; if (FAILED(InitializeShader("ColorConversion.fx", &m_pEffect1))) return E_FAIL; if (FAILED(InitializeShader("NoEffect.fx", &m_pEffect2))) return E_FAIL; if (FAILED(InitializeShader("GrayScale.fx", &m_pEffect3))) return E_FAIL; if (FAILED(InitializeShader("Sepia.fx", &m_p..
1. 그림자 맵핑. 1. 그림자. 1. 그림자 생성. 2. 그림자 적용. 3. 공간 변환. 1. 로컬 공간 - 월드 공간 - 뷰 공간 - 투영 공간. 2. 로컬 공간 - 월드 공간 - 빛 / 뷰 공간 - 빛 / 투영 공간. 2. 초기화 함수. HRESULT CMainGame::Initialize(void) { if (FAILED(InitializeDevice())) return E_FAIL; if (FAILED(InitializeShader("CreateShadow.fx", &m_pEffect1))) return E_FAIL; if (FAILED(InitializeShader("ApplyShadow.fx", &m_pEffect2))) return E_FAIL; if (FAILED(InitializeMes..
1. UV애니메이션과 울렁 효과. 1. 초기화 함수. HRESULT CMainGame::Initialize(void) { if (FAILED(InitializeDevice())) return E_FAIL; if (FAILED(InitializeShader("UVAnimation.fx", &m_pEffect))) return E_FAIL; if (FAILED(InitializeMesh("Model.x", &m_pMesh))) return E_FAIL; if (FAILED(InitializeTexture("Fieldstone_DM.tga", &m_pTexture1))) return E_FAIL; if (FAILED(InitializeTexture("Fieldstone_SM.tga", &m_pTexture2)..
1. 환경 맵핑. 1. 환경맵에서 텍셀을 구하는 방법. 2. 초기화 함수. HRESULT CMainGame::Initialize(void) { if (FAILED(InitializeDevice())) return E_FAIL; if (FAILED(InitializeShader("EnvironmentMapping.fx", &m_pEffect))) return E_FAIL; if (FAILED(InitializeMesh("TeapotWithTangent.x", &m_pMesh))) return E_FAIL; if (FAILED(InitializeTexture("Fieldstone_DM.tga", &m_pTexture1))) return E_FAIL; if (FAILED(InitializeTexture("Fi..
1. 법선 맵핑. 1. 법선 맵. 1. 법선맵의 RGB값의 범위. 1. 0 ~ 1. 2. 정규화된 법선 벡터 XYZ값의 범위. 1. -1 ~ 1. 3. 변환 공식. 1. 법선 맵 = 법선 벡터 * 0.5 + 0.5. 2. 법선 벡터 = 법선 맵 * 2 - 1. float3 T = normalize(tex2D(NormalSampler, _input.UV).xyz * 2 - 1); 4. 공간 변환. float3x3 TBN = transpose(float3x3(normalize(_input.tangent), normalize(_input.binormal), normalize(_input.normal))); float3 world = mul(TBN, T); 2. 초기화 함수. HRESULT CMainGame::..
1. 툰 셰이더. 1. 난반사광 그래프와 툰 셰이더 그래프. 2. 초기화 함수. HRESULT CMainGame::Initialize(void) { if (FAILED(InitializeDevice())) return E_FAIL; if (FAILED(InitializeShader("ToonShader.fx", &m_pEffect))) return E_FAIL; if (FAILED(InitializeMesh("Model.x", &m_pMesh))) return E_FAIL; D3DXMATRIX matWorld; D3DXMatrixIdentity(&matWorld); D3DXMATRIX matView; D3DXVECTOR3 vEye(0.0f, 0.0f, -200.0f); D3DXVECTOR3 vLook(0..
1. 디퓨즈, 스팩큘러 맵핑. 1. 난반사광. 1. 빛의 색상 * 난반사광의 양 * 디퓨즈맵의 값. float3 vDir = normalize(output.position.xyz - m_vLightPosition.xyz);//입사광. float3 vWorld = normalize(mul(_input.normal, (float3x3)m_matWorld));//표면 법선. output.diffuse = dot(-vDir, vWorld);//표면 법선과 입사광의 내적. float4 albedo = tex2D(DiffuseSampler, _input.UV); float3 diffuse = m_vLightColor * saturate(_input.diffuse) * albedo.rgb;//빛의 색상 * 난반사광의..
1. 조명 셰이더. 1. 난반사광(Diffuse). 1. 람베르트 모델. float3 vDir = normalize(output.position.xyz - m_vLight.xyz);//입사광. float3 vWorld = normalize(mul(_input.normal, (float3x3)m_matWorld));//표면 법선. output.diffuse = dot(-vDir, vWorld);//표면 법선과 입사광의 내적. 2. 정반사광(Specular). 1. 퐁 모델. output.view = normalize(output.position.xyz - m_vCamera.xyz);//카메라 벡터. output.reflection = reflect(vDir, vWorld);//반사광. float3 view..
1. 셰이더. 1. 셰이더의 정의. 1. 정점 셰이더. 1. 각 정점의 공간을 변환. 2. 픽셀 셰이더. 1. 화면에 출력할 최종 색상을 계산. 2. 기타. 1. 전역변수. 1. 정점마다 동일한 값을 사용. 2. 정점데이터. 1. 정점마다 다른 값을 사용. 3. 시맨틱. 1. 일종의 태그. 2. 컬러 셰이더. 1. 초기화 함수. HRESULT CMainGame::Initialize(void) { if (FAILED(InitializeDevice())) return E_FAIL; if (FAILED(InitializeShader("ColorShader.fx", &m_pEffect))) return E_FAIL; if (FAILED(InitializeMesh("Model.x", &m_pMesh))) retu..