pixiv / three-vrm

Use VRM on Three.js
MIT License
1.27k stars 111 forks source link

MToon: Artifact on VRoid models #57

Open 0b5vr opened 5 years ago

0b5vr commented 5 years ago

image

髪の断面にアーティファクト。MatCapを見るとわかりやすい。 たしかUVのdeltaが無いなどで前にも苦しんだ箇所。

0b5vr commented 5 years ago

やっぱりtangent space normal mapをobject spaceにする際にアーティファクトが出ている模様。 ちなみに、Three.jsのPBRマテリアル等でも同様の問題は発生するはずです。

iCyP commented 5 years ago

Example(dnd)にVroid073-Sendagaya_Shinoで再現しないように見えるのですが、該当モデルは短冊断面のUVのYが1揃えに押しつぶされているのでUVの縦差分がなくて、従法線(tangent)が決まらない…とかではないでしょうか https://github.com/pixiv/three-vrm/blob/52de0597bb8a814aca24107505060aaee9846bac/src/vrm/material/shaders/mtoon.frag#L105-L112 のst.t成分が0になって(?)scaleが0になってL111で回避されているように見えますが…。

0b5vr commented 5 years ago

はい、そんな感じだと僕も予想しています……