diff --git a/Gltf_Parser/gltfparser.py b/Gltf_Parser/gltfparser.py index 09fe8b8..e654eb8 100644 --- a/Gltf_Parser/gltfparser.py +++ b/Gltf_Parser/gltfparser.py @@ -766,6 +766,7 @@ def _create_material(self, renderer, prim, channel_names): material = renderer.classes.MtlSingleBRDF() #material.double_sided=True brdf = renderer.classes.BRDFVRayMtl() + emissive_strength = 1.0 # fresnel should be true at all times brdf.fresnel = True @@ -798,6 +799,10 @@ def _create_material(self, renderer, prim, channel_names): self._create_KHR_materials_clearcoat(renderer, prim, gltf_mat.extensions.get('KHR_materials_clearcoat'), brdf) if gltf_ext=='KHR_materials_sheen': self._create_KHR_materials_sheen(renderer, prim, gltf_mat.extensions.get('KHR_materials_sheen'), brdf) + if gltf_ext=='KHR_materials_emissive_strength': + emissive_strength = gltf_mat.extensions.get('KHR_materials_emissive_strength').get('emissiveStrength') + if gltf_ext=='KHR_materials_ior': + brdf.refract_ior = gltf_mat.extensions.get('KHR_materials_ior').get('ior') # Apply vertex color to the diffuse texture applyVertexColor(renderer, brdf, channel_names) @@ -816,14 +821,22 @@ def _create_material(self, renderer, prim, channel_names): brdf.bump_type=1 #emissive tex - emissive_tex = self._make_texture(renderer,prim,gltf_mat.emissiveTexture, transfer_func = 2) + emissive_tex = self._make_texture(renderer, prim, gltf_mat.emissiveTexture, transfer_func = 2) + emissive_factor = gltf_mat.emissiveFactor if emissive_tex != None: - emissive_factor = gltf_mat.emissiveFactor if emissive_factor != None: - emissive_tex.color_mult = vray.AColor(emissive_factor[0], emissive_factor[1], emissive_factor[2], 1) + emissive_tex.color_mult = vray.AColor( + emissive_factor[0] * emissive_strength, + emissive_factor[1] * emissive_strength, + emissive_factor[2] * emissive_strength, 1) brdf.self_illumination = emissive_tex - # brdf.self_illumination_gi=True + else: + if emissive_factor != None: + brdf.self_illumination = vray.AColor( + emissive_factor[0] * emissive_strength, + emissive_factor[1] * emissive_strength, + emissive_factor[2] * emissive_strength, 1) #occlusion tex useOcclusion = False diff --git a/README.md b/README.md index b372520..09e49dd 100644 --- a/README.md +++ b/README.md @@ -65,10 +65,12 @@ python main.py d:\temp\vray_gltf\samples\basic\basic.glb --thick_glass --default The glTF parser supports glTF 2.0 with the following extensions: * KHR_texture_transform -* KHR_materials_pbrSpecularGlossiness -* KHR_materials_transmission * KHR_materials_clearcoat +* KHR_materials_emissive_strength +* KHR_materials_ior +* KHR_materials_pbrSpecularGlossiness * KHR_materials_sheen +* KHR_materials_transmission * KHR_lights_punctual is mostly working, but light range is not supported Simple transform animations are supported to some extent. Vertex deformations, either through morphing or skinning are currently not supported.