• HLSL定义float4 Pos:POSITION的寄存器绑定问题(Render Monkey)


    在HLSL编译器中写的float4 pos : POSITION0,编译到asm中是dcl_position v0。看起来默认就是将:  POSITION0绑定到v0了。

    然后重新写一段asm,在vertex stream map中使用的还是POSITION0,asm无论使用dcl_position v0还是dcl_position v1-v15,均可以正常运行。但是如果vertex stream map中使用的不是POSITION0,而是POSITION1-POSITION15,那么不管在asm中绑定到哪一个寄存器,都是黑屏,没有任何图像 输出(RenderMonkey中试验的)。

           当时一直以为是模型内部规定好了Semantic,比如模型顶点数据默认是0号流,然后你绑定POSITION0则会自动连接上。如果设置成其他流就连不上数据。后来发现不是这样。

           回家在dx demo里测试了一下。在 Stream Mapping指定好了POSITION1,Shader指定了POSITION1并应用设置,模型绘制正常。设置成其他的index也没有问题。

           输出的 POSITION0,这个只有0才有效,设置其他的index的话直接就报错了(这个很正常,无可非议)。

           如此看来,果然就是RenderMonkey的BUG了。

           原帖链接:http://www.opengpu.org/forum.php?mod=viewthread&tid=15885&extra=page%3D2

          

          

  • 相关阅读:
    complicated用法
    Vue安装并创建一个简单项目
    使用PyCharm创建Django项目及基本配置
    [hackerrank]John and GCD list
    在Web应用程序中执行计划任务(多线程)
    随笔,想了个同步的方案。
    文摘.
    csdn sql 搜索相关帖子。
    Url Rewriting,二级域名,重定向
    杂言
  • 原文地址:https://www.cnblogs.com/infintyward/p/3360799.html
Copyright © 2020-2023  润新知