안녕하세요. 날씨가 많이 덥네요. 더위 조심하세요.~
10단 스텐실단원의 내용은 어느정도 개념 파악했습니다.
연습문제 3,4번정도는 스스로 해결했는데
9장 블렌드쪽 이해가 떨어져서 그런지..
7번문제가 해결이 안되네요..
쉐이더 리소스는 정상적으로 가져와서 원통에 그려주고 있습니다.
가산 혼합 까지 적용 했습니다.
기존 TransparentBS 값에서
SrcBlend,DestBlend,BlendOp값만 바꿔 주었습니다.
D3D11_BLEND_DESC AddDesc = { 0 };
AddDesc.AlphaToCoverageEnable = false;
AddDesc.IndependentBlendEnable = false;
AddDesc.RenderTarget[0].BlendEnable = true;
AddDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_ONE;
AddDesc.RenderTarget[0].DestBlend = D3D11_BLEND_ONE;
AddDesc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD;
AddDesc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE;
AddDesc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ONE;
AddDesc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD;
AddDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
HR(device->CreateBlendState(&AddDesc, &AddBS));
Draw 부분입니다.
md3dImmediateContext->OMSetBlendState(RenderStates::AddBS, blendFactor, 0xffffffff);
boxTech->GetPassByIndex(p)->Apply(0, md3dImmediateContext);
md3dImmediateContext->DrawIndexed(nCountCyl, 0, 0);
// Restore default render state.
md3dImmediateContext->OMSetBlendState(0, blendFactor, 0xffffffff);
이렇게 했더니.. 원통 부분이 하얗게 날라갑니다.
그다음 스텐실 적용을 해야 하는데..
감이 잘 안옵니다.
현재 단계까지 작업이 맞는것일까요?
다음 스텐실 적용을 어떻게 해야 하는지..
힌트좀 부탁드립니다. 감사합니다. ^^
[DX11 입문 제10장] 연습문제 7번 BoltAnim 문제
Moderator: 류광
아,.. 이 예제소스가 부록에 있었군요.
부록에 예제 소스가 있었네요..
그런데 부록 예제에서
//
// DepthWriteOffDSS
//
D3D11_DEPTH_STENCIL_DESC depthWriteOffDesc;
ZeroMemory(&depthWriteOffDesc, sizeof(D3D11_DEPTH_STENCIL_DESC));
depthWriteOffDesc.DepthEnable = true;
depthWriteOffDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ZERO;
depthWriteOffDesc.DepthFunc = D3D11_COMPARISON_LESS;
HR(device->CreateDepthStencilState(&depthWriteOffDesc, &DepthWriteOffDSS));
.
.
.
md3dImmediateContext->OMSetDepthStencilState(RenderStates::DepthWriteOffDSS, 0);
이부분이.. 주석으로 막아도.. 차이가 없던데,.,,
이 부분이 이 연습문제의 핵심인거 같은데.. 아무런 차이가 없어요..
그런데 부록 예제에서
//
// DepthWriteOffDSS
//
D3D11_DEPTH_STENCIL_DESC depthWriteOffDesc;
ZeroMemory(&depthWriteOffDesc, sizeof(D3D11_DEPTH_STENCIL_DESC));
depthWriteOffDesc.DepthEnable = true;
depthWriteOffDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ZERO;
depthWriteOffDesc.DepthFunc = D3D11_COMPARISON_LESS;
HR(device->CreateDepthStencilState(&depthWriteOffDesc, &DepthWriteOffDSS));
.
.
.
md3dImmediateContext->OMSetDepthStencilState(RenderStates::DepthWriteOffDSS, 0);
이부분이.. 주석으로 막아도.. 차이가 없던데,.,,
이 부분이 이 연습문제의 핵심인거 같은데.. 아무런 차이가 없어요..
-
- Posts: 3805
- Joined: 2001-07-25 09:00
- Location: GPGstudy
- Contact: