首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DX10 Skybox明暗器

DX10 Skybox明暗器
EN

Stack Overflow用户
提问于 2011-02-03 09:36:15
回答 1查看 3K关注 0票数 0

我正在尝试用DX10编写一个skybox着色器,使用下面的HLSL代码:

代码语言:javascript
复制
//////////////////////////////////////////////////////////////////////////
// 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兼容模式时被禁用“。在第46行:

代码语言:javascript
复制
return float4( texCUBE( g_sSamplerMirror, Input.UV ) );

有没有texCUBE的替代品?如何在不启用dx9兼容模式的情况下修复此问题?

EN

回答 1

Stack Overflow用户

发布于 2011-02-03 09:45:20

由于您使用的是Shader Model 4,因此您应该能够创建a TextureCube object,然后创建call the Sample method

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4881893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档