zoukankan      html  css  js  c++  java
  • 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

          

          

  • 相关阅读:
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    C#中的委托是什么
    C# Lambda表达式Contains方法 like
  • 原文地址:https://www.cnblogs.com/infintyward/p/3360799.html
Copyright © 2011-2022 走看看