이전 수업..
박스 랜더링하면서 구의 표면에 해당하는 부분을 포지션타겟에서 가져와서 박스내에 있다고 판단되면 컬러쪽에 덧그려서 색을 입힌다 (컬러타겟에)
문양을 광원으로 취급하고 싶다면 ?
pObject->Decal()->SetAsLight(true) 를 해서 광원 취급으로 바꾼다.
실제 데칼에선 관련된 값을 쉐이더로 전달시킨다.
SetAsLight(true)를 하면 Decal component에서 setscalarparam에서 int_0에 전달될 것이다.
(int_0은 dacal.fx 에서 설정)
if(g_int_0)
{
output.vEmissive = vSampleColor;
}
else
{
output.vColor = vSampleColor;
}
알파블랜딩을 사용하고 있기 때문에 컬러타겟을 출력할 때, 추출한 텍스쳐의 알파값에 맞춰 최종 컬러타겟이 출력된다..
본인의 알파가 출력되는 색상의 알파에 곱해지고, 원래의 색상에는 1 - 알파 가 혼합돼서 컬러타겟에 나간다.
내가 이걸 광원취급해달라고 했으면 컬러가 아닌 Emissive에 들어가 광원쪽 타겟에 색상이 출력되게 된다.
'DirectX 11 3d' 카테고리의 다른 글
230526 Tesselation - Patch Constant Function (0) | 2023.05.26 |
---|---|
230525 LandScape, Tesselation (0) | 2023.05.26 |
230522 MRT 개선(EmissiveTargetTex) 및 Decal 생성 (0) | 2023.05.22 |
230519 Stencil Buffer (0) | 2023.05.20 |
230518 Light MRT - PointLight (다시 공부) (0) | 2023.05.20 |