有关HLSL在SVP和HVP之间不正确的问题,请高手指点
问题是这样的,我写了一个非常简单的HLSL,在Software Vertex Processing下是正确的,但是一旦使用Hardware Vertex Processing就不能正确显示了,看结果应该是Shader没有执行(虽然设置了使用HLSL来渲染,但实际还是执行的固定管线的渲染),以下是简单的HLSL代码:
请教高手,为什么会是这样?
// test.fx
const float2 QUAD_TEXCOORD[4] =
{
float2(0.0f, 0.0f),
float2(1.0f, 0.0f),
float2(0.0f, 1.0f),
float2(1.0f, 1.0f),
};
const float4 PP[4] =
{
float4(0.0f, 0.0f, 0.0f, 1.0f),
float4(0.5f, 0.0f, 0.0f, 1.0f),
float4(0.0f, 0.5f, 0.0f, 1.0f),
float4(0.5f, 0.5f, 0.0f, 1.0f),
};
struct VS_INPUT
{
float4 position0 : POSITION0;
float4 color0 : COLOR0;
float2 texcoord0 : TEXCOORD0;
float4 index : BLENDINDICES;
};
struct VS_OUTPUT
{
float4 position : POSITION;
float4 color0 : COLOR0;
float2 texcoord0 : TEXCOORD0;
};
VS_OUTPUT vs_main(VS_INPUT vs_in)
{
VS_OUTPUT vs_out;
int vert_index[4];
float4 pos;
float2 t;
int4 vv = D3DCOLORtoUBYTE4(vs_in.index);
vert_index = (int[4])vv;
vs_out.position = PP[vert_index[1]];
vs_out.color0 = float4(1.0f, 1.0f, 1.0f, 1.0f);
vs_out.texcoord0 = QUAD_TEXCOORD[vert_index[1]];
return vs_out;
}
technique t0
{
pass p0
{
VertexShader = compile vs_2_0 vs_main();
PixelShader = null;
}
}
请教高手,为什么会是这样?
// test.fx
const float2 QUAD_TEXCOORD[4] =
{
float2(0.0f, 0.0f),
float2(1.0f, 0.0f),
float2(0.0f, 1.0f),
float2(1.0f, 1.0f),
};
const float4 PP[4] =
{
float4(0.0f, 0.0f, 0.0f, 1.0f),
float4(0.5f, 0.0f, 0.0f, 1.0f),
float4(0.0f, 0.5f, 0.0f, 1.0f),
float4(0.5f, 0.5f, 0.0f, 1.0f),
};
struct VS_INPUT
{
float4 position0 : POSITION0;
float4 color0 : COLOR0;
float2 texcoord0 : TEXCOORD0;
float4 index : BLENDINDICES;
};
struct VS_OUTPUT
{
float4 position : POSITION;
float4 color0 : COLOR0;
float2 texcoord0 : TEXCOORD0;
};
VS_OUTPUT vs_main(VS_INPUT vs_in)
{
VS_OUTPUT vs_out;
int vert_index[4];
float4 pos;
float2 t;
int4 vv = D3DCOLORtoUBYTE4(vs_in.index);
vert_index = (int[4])vv;
vs_out.position = PP[vert_index[1]];
vs_out.color0 = float4(1.0f, 1.0f, 1.0f, 1.0f);
vs_out.texcoord0 = QUAD_TEXCOORD[vert_index[1]];
return vs_out;
}
technique t0
{
pass p0
{
VertexShader = compile vs_2_0 vs_main();
PixelShader = null;
}
}
...全文
相关推荐
加密系统设计-基于C++的RSA与AES组合加密系统-最新开发(含全新源码+详细设计文档).zip
加密系统设计-基于C++的RSA与AES组合加密系统-最新开发(含全新源码+详细设计文档).zip 《项目说明》 1、该项目是团队近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流答疑。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、欢迎下载,沟通交流,互相学习,共同进步!
AES加密算法(C++实现,附源码)
AES加密算法(C++实现,附源码) 更多免费资源: http://cleopard.download.csdn.net
好用的AES加密解密工具(源码)
本程序改自本论坛某位高手的源码,比较好用!!当然还有很多不完善之处,希望高手指出。
RSA加密算法源码
RSA加密算法源码 详情参见:http://blog.csdn.net/lemon_tree12138/article/details/50696926
STM32 加密算法 源码代码(包括AES的5种模式)
对于STM32通信数据加密和EEPROM的内容等加密 有三种 128位CTR 192位CBC 256位ECB


