티스토리 뷰
시작
http://marina.sys.wakayama-u.ac.jp/~tokoi/?date=20080218 http://www.arakin.dyndns.org/glsl_cartoon.php
2개 동시에 처리하는 좋은 방법이다.
하지만, mmd의 toon의 u 방향이 멀 뜻하는지 분석하지 못하겠다. lightVec, normal 와 연관이 되어있지만, view vector와도 연관이 있다. 뿌려보기 전까지진, uv의 u + normal.x 라는 이상한 식을 넣어는 등 여러식을 시험해봤는데 죄다 실패했다.
보통 u 값을 쓰진 않으니 무시하기로 했다.
float3 color = texDiffuse.Sample( sampler0, input.uv );
// (-1.0, -1.0, 0.0) -> shadow: -x
// ( 0.0, -1.0, +1.0) -> shadow: +z
// ( 0.0, -1.0, -1.0) -> shadow: -z
// ( 0,0, 1.0, -1.0) -> shadow: none
// incient light ray, treat as directional light (sun)
float3 incidentDir = float3(-1.0, -1.0, 0.0);
float3 lightDir = normalize( -incidentDir );
float3 normalW = normalize( input.normalW );
float intensity = dot( lightDir, normalW ) * 0.5 + 0.5;
//
// Toon texture :
//
// For v, from 0.0 to 1.0 which means from bright to dark.
// For u, can't find valid equation. Usually, it is ignored in various model.
//
// http://trackdancer.deviantart.com/art/MMD-PMD-Tutorial-Toon-Shaders-Primer-394445914
//
float2 toonCoord = float2( 0.5, 1.0 - intensity );
MMD 상의 좌표축이 가짜라는걸 빨리 깨닫지 못해 생각보다 시간이 걸렸다. 그냥 보이는 것만 그렇게 보이고 실제론 왼손 좌표계인듯
카메라 위치도 -z 로 움직여 버리더라
'Game > MMD' 카테고리의 다른 글
MikuViewr (5) - Sphere (0) | 2017.06.20 |
---|---|
MikuViewr (4) Lighting (0) | 2017.06.19 |
MikuViewer(2) (0) | 2017.06.16 |
MikuViewer (1) (0) | 2017.06.15 |
PMD / PMX import (1) (0) | 2017.05.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크