Xml 科拉达。双面纹理不起作用

Xml 科拉达。双面纹理不起作用,xml,graphics,collada,Xml,Graphics,Collada,我创建dae文件以导出到web应用程序。我的曲面只有背面的纹理(曲面的一侧)。我希望它有脸和背的纹理。在collada规范1.5(第26页)中,我看到我们应该使用双面语义属性: <input semantic="POSITION" source="#grid-Position"/> <newparam sid="blah"> <semantic>DOUBLE_SIDED</semantic> <float>1.0</float&g

我创建dae文件以导出到web应用程序。我的曲面只有背面的纹理(曲面的一侧)。我希望它有脸和背的纹理。在collada规范1.5(第26页)中,我看到我们应该使用双面语义属性:

<input semantic="POSITION" source="#grid-Position"/>
<newparam sid="blah">
<semantic>DOUBLE_SIDED</semantic>
<float>1.0</float>
</newparam> 

双面的
1
但当我这么做的时候,一切都没有改变。我粘贴此代码:

<effect name="Material0-fx" id="Material0-fx">
      <profile_COMMON>
        <newparam sid="Image-Material0-surface">
          <surface type="2D">
            <init_from>Image-Material0</init_from>
            <format>A8R8G8B8</format>
          </surface>
        </newparam>
        <newparam sid="Image-Material0-sampler">
          <sampler2D>
            <source>Image-Material0-surface</source>
            <wrap_s>WRAP</wrap_s>
            <wrap_t>WRAP</wrap_t>
            <minfilter>NONE</minfilter>
            <magfilter>NONE</magfilter>
            <mipfilter>NONE</mipfilter>
          </sampler2D>
       </newparam>        
        <newparam>
          <semantic>DOUBLE_SIDED</semantic>
       </newparam>
        <technique id="Material0-fx-COMMON" sid="COMMON">
          <phong>
            <ambient>
              <color>1 1 1 1</color>
            </ambient>
            <diffuse>
              <texture texture="Image-Material0-sampler" texcoord="CHANNEL1" />
            </diffuse>
            <specular>
              <color>0.00784313725490196 0.00784313725490196 0.00784313725490196 1</color>
            </specular>
            <shininess>
              <float>0.3125</float>
            </shininess>
            <transparency>
              <float>0</float>
            </transparency>
          </phong>
        </technique>
      </profile_COMMON>
    </effect>

图像材料0
A8R8G8B8
图像-材料0-表面
包
包
没有一个
没有一个
没有一个
双面的
1 1 1 1
0.00784313725490196 0.00784313725490196 0.00784313725490196 1
0.3125
0
在我的代码中,纹理只应用于曲面的背面有什么错误?谢谢你的帮助

在collada规范1.5(第26页)中,我看到我们应该使用双面语义属性:

这是不对的。它只给出了一个示例,说明所有语义必须为大写,1.5规范规定:

输入和参数语义名称为大写。例如,
的值和
元素的语义属性都是大写字母:


双面的
1
如果坚持使用此语义,则渲染器和导入器必须处理此语义。您也可以将数据放入
中,但导入器和呈现器必须再次处理数据

当前COLLADA规范不直接支持双面属性。例如,如果您的应用程序支持glTF等其他格式,则您可以编写(或修改现有转换器,例如COLLADA2GLTF)转换器,以将此语义属性额外属性转换为其他格式属性。glTF支持双面材质。您可以在web中使用COLLADA之前将其转换为glTF。或者,如果您愿意,您只能使用glTF

当然,您可以在web中使用COLLADA,但您的渲染器/导入器必须处理放入COLLADA中的这个双面属性/元素

注:您的
用法也不正确。因为它不在任何地方使用。它没有任何使其他元素难以访问的SIDID属性(如果您没有线性地迭代所有newparam并试图查找双面文本,这不是一个好主意)

<input semantic="POSITION" source="#grid-Position"/>
<newparam sid="blah">
   <semantic>DOUBLE_SIDED</semantic>
   <float>1.0</float>
</newparam>