加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows应用商店应用Shader型号4_0_level_9_3和VPOS

发布时间:2020-12-14 02:20:30 所属栏目:Windows 来源:网络整理
导读:要为 Windows应用商店应用(和Windows Phone 8)Shader模型4_0_level_9_3构建着色器,您需要使用vs_4_0_level_9_3和ps_4_0_level_9_3.虽然使用专为DirectX 10设计的HLSL语法来说这一切听起来都不错,但我无法使用DirectX 9中的VPOS语义或使用DirectX 10中的SV_PO
要为 Windows应用商店应用(和Windows Phone 8)Shader模型4_0_level_9_3构建着色器,您需要使用vs_4_0_level_9_3和ps_4_0_level_9_3.虽然使用专为DirectX 10设计的HLSL语法来说这一切听起来都不错,但我无法使用DirectX 9中的VPOS语义或使用DirectX 10中的SV_POSITION以及像素着色器中的SV_POSITION,所以除了制作另一个之外我该怎么做用于输出剪辑空间中顶点位置的语义?

PS:4_0_level_9_3上的一些着色器吐出“内部错误:level9和d3d10着色器之间的blob内容不匹配”,我不知道是什么.可能与我想的驱动程序有一些不一致(我使用的是Nvidia GTX 560 TI),如果您只是使用发布标志(如优化级别3并避免流量控制)编译着色器,我会看到它消失了.

解决方法

正如你所说,你最好的选择是将这些值作为二级语义传递(即传递“POSITION”和“SV_POSITION”值).请注意,如果将SV_POSITION放在顶点着色器的输出声明的末尾,则可以从像素着色器的输入声明中省略它.

关于内部错误,这通常是由于声明纹理或其他着色器输入的声明,该输入在一次通过中优化而在另一次通过中不优化.禁用优化通常可以解决问题,但您也应该能够通过消除未使用的(包括通过死代码消除)输入声明来修复它,并确保您避免复杂的代码减少到无操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读