0
나는 다음과 같은 HLSL 코드를 사용하여 DX10의 스카이 박스 쉐이더를 작성하려고 해요 : 오류 제공DX10 스카이 박스 쉐이더
//////////////////////////////////////////////////////////////////////////
// world matrix for each rendered object
float4x4 g_mWorld;
// single cubemap texture
Texture2D g_tCubeMap;
// basic mirror texture sampler
SamplerState g_sSamplerMirror
{
Filter = MIN_MAG_MIP_POINT;
AddressU = MIRROR;
AddressV = MIRROR;
};
//////////////////////////////////////////////////////////////////////////
// pre-defined vertex formats for vertex input layouts
struct VS_INPUT
{
float3 Position : POSITION;
};
struct PS_INPUT
{
float4 SPosition : SV_POSITION;
float3 UV : TEXCOORD;
};
//////////////////////////////////////////////////////////////////////////
PS_INPUT VS_Default(VS_INPUT Input)
{
PS_INPUT Output = (PS_INPUT)0;
Output.SPosition = float4(Input.Position,1.0f);
Output.UV = normalize(mul(Output.SPosition, g_mWorld)).xyz;
return Output;
}
//////////////////////////////////////////////////////////////////////////
float4 PS_Default(PS_INPUT Input) : SV_TARGET0
{
return float4(texCUBE(g_sSamplerMirror, Input.UV));
}
//////////////////////////////////////////////////////////////////////////
technique10 TECH_Default
{
pass
{
SetVertexShader(CompileShader(vs_4_0, VS_Default()));
SetPixelShader(CompileShader(ps_4_0, PS_Default()));
SetGeometryShader(0);
}
}
. "DX-9 스타일의 내장 함수가 비활성화를하지 않을 경우 DX9 호환성 모드" on line 46 :
return float4(texCUBE(g_sSamplerMirror, Input.UV));
texCUBE 대신 사용할 수있는 방법이 있습니까? dx9 호환 모드를 활성화하지 않고 어떻게 해결할 수 있습니까?
D3D10 : 오류 : ID3D10Device :: DrawIndexed : 래스터 화 단위가 활성화되어 있습니다 (PixelShader가 NULL이 아니거나 Depth/Stencil 테스트가 활성화되어 있음). 그러나 위치는 마지막 셰이더에서 제공하지 않습니다. 래스터 화 단위. [EXECUTION ERROR # 362 : DEVICE_DRAW_POSITION_NOT_PRESENT] D3D10 : 오류 : ID3D10Device :: DrawIndexed : 꼭지점 셰이더는 드로잉 할 때 항상 필요하지만 현재 바운드되어 있지 않습니다. [EXECUTION ERROR # 341 : DEVICE_DRAW_VERTEX_SHADER_NOT_SET] – Simononon
아, D3D10이 매우 자세한 오류 메시지입니다. 불행히도 나는 당신이 위에 붙여 넣은 코드로 어떻게 생성되는지를 잘 알지 못한다. 당신이 버텍스 쉐이더 *와 * 쉐이더를 이펙트에 설정하고있는 것처럼 보입니다 - 아마도 버텍스 쉐이더가 당신의 C++ 코드에서 우연히 설정되지 않았을 수 있습니다? –