KhronosGroup / KhronosGroup/UnityGLTF

[Feature Request/Improvement on PBR Consistency] IOR value of UnityGLTF shader must apply to non-transparent material.

Open
#894 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
2.2k
Forks
536
PR merge metrics
No merged PRs in 30d

Description

### Describe the bug 💬

This question/request first came up during another issue ticket (https://github.com/KhronosGroup/UnityGLTF/issues/857) but it was not directly related so I'm posting it as a separate feature request for your consideration. I believe this would increase the compatibility and visual consistency between UnityGLTF and other PBR software such as Blender.

I'm not a graphical programming expert so please forgive my way of describing this.

I think the implementation of UnityGLTF shader considers IOR as being a transparency property but in PBR systems, IOR value controls the base color of a non-transparent material as shown in the Blender screenshots below.

UnityGLTF Readme documentation mentions enabling Transmission and Volume (optional). When I enable Transmission and increase its value, I still don't see any effect on the material while changing the IOR value. Enabling Volume finally starts to show the IOR effect on the material... BUT...

I was expecting IOR to work on NON-TRANSPARENT materials similar to what I see in Blender. I am not expert on these graphical stuff but, as far as I can observe in blender, IOR is not only related to the transparency of the object. It affects the base color of the material and specular strength even for non-transparent materials.

Image

---

Image

### Steps to reproduce 🔢

This is a feature request.

### Files to reproduce the issue ♻

_No response_

### Editor Version 🎲

Other (Provide details below)

### Render Pipeline and version

Not related

### UnityGLTF Version

Not related

### Operating System 👩‍💻

Other (Provide details below)

### When does this problem happen?

- [ ] Editor Import
- [ ] Runtime Import
- [ ] Editor Export
- [ ] Runtime Export

### Additional Info 📜

_No response_

### Validations 🩹

- [x] I have [searched existing issues](https://github.com/KhronosGroup/UnityGLTF/issues): no issue already exist that reports the same problem.
- [x] I follow the [Code of Conduct](https://www.khronos.org/about/code-of-conduct)
- [ ] I provided a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example), including files when necessary.

Contributor guide

No contributing guide indexed for this repository

Research direction

No source file or test is named. Start by locating the UnityGLTF shader and material handling for IOR, then compare its behavior with the Blender examples described; done means IOR visibly affects non-transparent materials without requiring Volume, while preserving the existing transparency behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, unity
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.