Lighting
[DirectX11] 080 Spot Lighting
[DirectX11] 080 Spot Lighting
2023.03.26DirectX 11에서 Spotlight를 만들기. Spotlight용 셰이더를 작성한다. 먼저, 셰이더 상수 버퍼를 정의한다. ObjectTransforms 상수 버퍼는 개체의 변환 행렬을 저장하고 SpotLightBuffer 상수 버퍼는 스포트 라이트의 위치, 방향, 색상 및 라이트의 스포트 파라미터를 저장한다. Spotlight 셰이더의 VSMain 함수는 입력 버텍스의 위치와 법선을 투영 공간으로 변환하고 광원 공간으로 변환한다. 목차 Spot Lighting DirectX 11에서 Spotlight를 만들기 Spotlight용 셰이더를 작성한다. 먼저, 셰이더 상수 버퍼를 정의한다. ObjectTransforms 상수 버퍼는 개체의 변환 행렬을 저장하고 SpotLightBuffer 상수 버퍼는 ..
[DirectX11] 078~79 Point Lighting, HLSL [flatten] [branch]
[DirectX11] 078~79 Point Lighting, HLSL [flatten] [branch]
2023.03.21DirectX 11에서 Point Light를 사용하기 위해서는 먼저 씬에서 조명을 설정하고 빛을 발산하는 위치를 지정해야 한다. 이 위치는 3D 공간에서 벡터로 표시된다. 그 다음 셰이더 프로그램에서 Point Light를 처리할 수 있는 코드를 작성해야 한다. 일반적으로 Point Light를 처리하기 위해 사용되는 기술은 Phong Lighting 모델이다. 목차 Lighting Shader Light.fx Lighting.fx PointLighting.fx Framework Renders PerFrame .cpp Shader Lighting PointLightingDemo.h .cpp Point Light DirectX 11에서 Point Light를 사용하기 위해서는 먼저 씬에서 조명을 설정하고..
[DirectX11] 075~77 Lighting, HLSL
[DirectX11] 075~77 Lighting, HLSL
2023.03.18DirectX 11에서 Lighting을 구현하려면, HLSL(고수준 셰이더 언어)을 사용하여 셰이더 코드를 작성해야 한다. HLSL은 Direct3D에서 셰이더 프로그래밍을 위해 사용되는 언어로, 셰이더 코드를 작성하고 컴파일하여 GPU에서 실행할 수 있는 바이너리 코드로 변환한다. 목차 Lighting Lighting을 구현하는 방법은 다양하지만, 일반적으로는 Phong 또는 Blinn-Phong Lighting 모델을 사용한다. 이 모델은 ambient, diffuse, specular lighting을 사용하여 표면의 색상을 계산한다. 각각의 조명 구성 요소는 다음과 같이 계산된다. Ambient lighting float4 ambientColor = float4(0.2, 0.2, 0.2, 1.0..