0

我正在努力了解我应该如何使用从 3DS Max 获得的材质和照明值来重新创建类似的照明。我从 3DS Max 导出的 Collada 文件中获取材质和照明,并使用它们在 OpenGL 中渲染场景。使用 Blinn-Phong 着色器渲染场景。然而,场景总是以明亮的方式结束。

3DS max 的光照数据对我来说似乎很奇怪。它由两盏灯组成,一个环境灯和一个只有单一颜色的定向灯。因为我不太确定这种单一颜色与什么相关,所以我将它应用于光的漫反射和镜面反射分量。

无论如何,有谁知道 3DS Max/Collada 的材质和光照数据有什么奇怪的地方吗?或者您是否成功使用它而没有任何问题,这意味着我只是做错了什么?

编辑#1

根据要求,这是来自 collada 的材料/照明信息。恐怕我无法发布任何屏幕截图,但是场景非常明亮,例如橙子变成了亮黄色。特别是镜面反射值似乎非常高,但它们似乎在 Max 中运行良好......

科拉达材料:

<library_effects>
<effect id="WorldTexture">
  <profile_COMMON>
    <newparam sid="world_texture_png-surface">
      <surface type="2D">
        <init_from>world_texture_png</init_from>
      </surface>
    </newparam>
    <newparam sid="world_texture_png-sampler">
      <sampler2D>
        <source>world_texture_png-surface</source>
      </sampler2D>
    </newparam>
    <technique sid="common">
      <blinn>
        <emission>
          <color>0 0 0 1</color>
        </emission>
        <ambient>
          <color>0.588 0.588 0.588 1</color>
        </ambient>
        <diffuse>
          <texture texture="world_texture_png-sampler" texcoord="CHANNEL1"/>
        </diffuse>
        <specular>
          <color>0.9 0.9 0.9 1</color>
        </specular>
        <shininess>
          <float>10</float>
        </shininess>
        <reflective>
          <color>0 0 0 1</color>
        </reflective>
        <transparent opaque="A_ONE">
          <color>1 1 1 1</color>
        </transparent>
        <transparency>
          <float>1</float>
        </transparency>
      </blinn>
    </technique>
  </profile_COMMON>
  <extra>
    <technique profile="OpenCOLLADA3dsMax">
      <extended_shader>
        <apply_reflection_dimming>0</apply_reflection_dimming>
        <dim_level>0</dim_level>
        <falloff_type>0</falloff_type>
        <index_of_refraction>1.5</index_of_refraction>
        <opacity_type>0</opacity_type>
        <reflection_level>3</reflection_level>
        <wire_size>1</wire_size>
        <wire_units>0</wire_units>
      </extended_shader>
      <shader>
        <ambient_diffuse_lock>1</ambient_diffuse_lock>
        <ambient_diffuse_texture_lock>1</ambient_diffuse_texture_lock>
        <diffuse_specular_lock>0</diffuse_specular_lock>
        <soften>0.1</soften>
        <use_self_illum_color>0</use_self_illum_color>
      </shader>
    </technique>
  </extra>
</effect>

科拉达灯:

<library_lights>
<light id="EnvironmentAmbientLight" name="EnvironmentAmbientLight">
  <technique_common>
    <ambient>
      <color>0.6235294 0.6235294 0.6235294</color>
    </ambient>
  </technique_common>
</light>
<light id="FDirect001-light" name="FDirect001">
  <technique_common>
    <directional>
      <color>0.937255 0.7921569 0.5411765</color>
    </directional>
  </technique_common>
  <extra>
    <technique profile="OpenCOLLADA3dsMax">
      <max_light>
        <aspect_ratio>1</aspect_ratio>
        <atmosphere_color_amount>1</atmosphere_color_amount>
        <atmosphere_on>0</atmosphere_on>
        <atmosphere_opacity>1</atmosphere_opacity>
        <attenuation_far_end>100</attenuation_far_end>
        <attenuation_far_start>80</attenuation_far_start>
        <attenuation_near_end>26.8</attenuation_near_end>
        <attenuation_near_start>0</attenuation_near_start>
        <contrast>0</contrast>
        <decay_falloff>40</decay_falloff>
        <decay_type>0</decay_type>
        <diffuse_soften>0</diffuse_soften>
        <falloff>902</falloff>
        <hotspot_beam>900</hotspot_beam>
        <multiplier>0.5</multiplier>
        <overshoot>0</overshoot>
        <shadow_density>1</shadow_density>
        <shadow_map>0</shadow_map>
        <target_distance>440</target_distance>
        <use_far_attenuation>0</use_far_attenuation>
        <use_near_attenuation>0</use_near_attenuation>
      </max_light>
    </technique>
  </extra>
</light>
</library_lights>
4

0 回答 0