我很难看到如何使用从3DS Max获得的材质和光照值来重建类似的光照。我正在从3DS Max导出的Collada文件中获取材质和光照,并使用它们在OpenGL中渲染场景。使用Blinn-Phong着色器渲染场景。然而,场景总是以明亮的方式结束。
来自3DS max的光数据对我来说似乎很奇怪。它由两个灯组成,一个环境光和一个只有一种颜色的定向灯。由于我不太清楚这种单一颜色的含义,我已将它应用于光的漫反射和镜面反射分量。
无论如何,有没有人知道3DS Max / Collada材料和灯光数据是否有些奇怪?或者你成功地使用它没有任何问题意味着我只是做错了什么?
编辑#1
根据要求,继承了collada的材料/灯光信息。我担心我不能发布任何截图,但是场景变得非常明亮,例如橘子变成亮黄色。特别是高光值似乎非常高,但它们似乎在Max ......中运行良好。
Collada材料:
<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>