提交 93bfc79d 编写于 作者: T Takahiro

Clean up MeshPhongMaterial GLSL

上级 f64bb2de
...@@ -62,7 +62,7 @@ THREE.OutlineEffect = function ( renderer, parameters ) { ...@@ -62,7 +62,7 @@ THREE.OutlineEffect = function ( renderer, parameters ) {
MeshBasicMaterial: 'basic', MeshBasicMaterial: 'basic',
MeshLambertMaterial: 'lambert', MeshLambertMaterial: 'lambert',
MeshPhongMaterial: 'phong', MeshPhongMaterial: 'phong',
MeshToonMaterial: 'toon', MeshToonMaterial: 'phong',
MeshStandardMaterial: 'physical', MeshStandardMaterial: 'physical',
MeshPhysicalMaterial: 'physical' MeshPhysicalMaterial: 'physical'
}; };
......
...@@ -55,6 +55,8 @@ function MeshToonMaterial( parameters ) { ...@@ -55,6 +55,8 @@ function MeshToonMaterial( parameters ) {
MeshPhongMaterial.call( this ); MeshPhongMaterial.call( this );
this.defines = { 'TOON': '' };
this.type = 'MeshToonMaterial'; this.type = 'MeshToonMaterial';
this.gradientMap = null; this.gradientMap = null;
......
...@@ -623,7 +623,6 @@ function WebGLRenderer( parameters ) { ...@@ -623,7 +623,6 @@ function WebGLRenderer( parameters ) {
_gl.bindBuffer( _gl.ARRAY_BUFFER, buffers.normal ); _gl.bindBuffer( _gl.ARRAY_BUFFER, buffers.normal );
if ( ! material.isMeshPhongMaterial && if ( ! material.isMeshPhongMaterial &&
! material.isMeshToonMaterial &&
! material.isMeshStandardMaterial && ! material.isMeshStandardMaterial &&
material.shading === FlatShading ) { material.shading === FlatShading ) {
...@@ -1776,7 +1775,6 @@ function WebGLRenderer( parameters ) { ...@@ -1776,7 +1775,6 @@ function WebGLRenderer( parameters ) {
if ( material.isShaderMaterial || if ( material.isShaderMaterial ||
material.isMeshPhongMaterial || material.isMeshPhongMaterial ||
material.isMeshToonMaterial ||
material.isMeshStandardMaterial || material.isMeshStandardMaterial ||
material.envMap ) { material.envMap ) {
...@@ -1792,7 +1790,6 @@ function WebGLRenderer( parameters ) { ...@@ -1792,7 +1790,6 @@ function WebGLRenderer( parameters ) {
} }
if ( material.isMeshPhongMaterial || if ( material.isMeshPhongMaterial ||
material.isMeshToonMaterial ||
material.isMeshLambertMaterial || material.isMeshLambertMaterial ||
material.isMeshBasicMaterial || material.isMeshBasicMaterial ||
material.isMeshStandardMaterial || material.isMeshStandardMaterial ||
...@@ -1865,7 +1862,6 @@ function WebGLRenderer( parameters ) { ...@@ -1865,7 +1862,6 @@ function WebGLRenderer( parameters ) {
if ( material.isMeshBasicMaterial || if ( material.isMeshBasicMaterial ||
material.isMeshLambertMaterial || material.isMeshLambertMaterial ||
material.isMeshPhongMaterial || material.isMeshPhongMaterial ||
material.isMeshToonMaterial ||
material.isMeshStandardMaterial || material.isMeshStandardMaterial ||
material.isMeshDepthMaterial ) { material.isMeshDepthMaterial ) {
......
...@@ -99,8 +99,6 @@ import meshphong_frag from './ShaderLib/meshphong_frag.glsl'; ...@@ -99,8 +99,6 @@ import meshphong_frag from './ShaderLib/meshphong_frag.glsl';
import meshphong_vert from './ShaderLib/meshphong_vert.glsl'; import meshphong_vert from './ShaderLib/meshphong_vert.glsl';
import meshphysical_frag from './ShaderLib/meshphysical_frag.glsl'; import meshphysical_frag from './ShaderLib/meshphysical_frag.glsl';
import meshphysical_vert from './ShaderLib/meshphysical_vert.glsl'; import meshphysical_vert from './ShaderLib/meshphysical_vert.glsl';
import meshtoon_frag from './ShaderLib/meshtoon_frag.glsl';
import meshtoon_vert from './ShaderLib/meshtoon_vert.glsl';
import normal_frag from './ShaderLib/normal_frag.glsl'; import normal_frag from './ShaderLib/normal_frag.glsl';
import normal_vert from './ShaderLib/normal_vert.glsl'; import normal_vert from './ShaderLib/normal_vert.glsl';
import points_frag from './ShaderLib/points_frag.glsl'; import points_frag from './ShaderLib/points_frag.glsl';
...@@ -210,8 +208,6 @@ export var ShaderChunk = { ...@@ -210,8 +208,6 @@ export var ShaderChunk = {
meshphong_vert: meshphong_vert, meshphong_vert: meshphong_vert,
meshphysical_frag: meshphysical_frag, meshphysical_frag: meshphysical_frag,
meshphysical_vert: meshphysical_vert, meshphysical_vert: meshphysical_vert,
meshtoon_frag: meshtoon_frag,
meshtoon_vert: meshtoon_vert,
normal_frag: normal_frag, normal_frag: normal_frag,
normal_vert: normal_vert, normal_vert: normal_vert,
points_frag: points_frag, points_frag: points_frag,
......
#if NUM_CLIPPING_PLANES > 0 #if NUM_CLIPPING_PLANES > 0
#if ! defined( PHYSICAL ) && ! defined( PHONG ) && ! defined( TOON ) #if ! defined( PHYSICAL ) && ! defined( PHONG )
varying vec3 vViewPosition; varying vec3 vViewPosition;
#endif #endif
......
#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG ) && ! defined( TOON ) #if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )
varying vec3 vViewPosition; varying vec3 vViewPosition;
#endif #endif
#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG ) && ! defined( TOON ) #if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )
vViewPosition = - mvPosition.xyz; vViewPosition = - mvPosition.xyz;
#endif #endif
#ifdef USE_ENVMAP #ifdef USE_ENVMAP
#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( TOON ) #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )
vec3 cameraToVertex = normalize( vWorldPosition - cameraPosition ); vec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#ifdef USE_ENVMAP #ifdef USE_ENVMAP
#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( TOON ) ) #if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )
varying vec3 vWorldPosition; varying vec3 vWorldPosition;
#endif #endif
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#endif #endif
uniform float flipEnvMap; uniform float flipEnvMap;
#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( TOON ) || defined( PHYSICAL ) #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )
uniform float refractionRatio; uniform float refractionRatio;
#else #else
varying vec3 vReflect; varying vec3 vReflect;
......
#ifdef USE_ENVMAP #ifdef USE_ENVMAP
#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( TOON ) #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )
varying vec3 vWorldPosition; varying vec3 vWorldPosition;
#else #else
......
#ifdef USE_ENVMAP #ifdef USE_ENVMAP
#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( TOON ) #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )
vWorldPosition = worldPosition.xyz; vWorldPosition = worldPosition.xyz;
......
#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( TOON ) || defined( PHYSICAL ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP ) #if defined( USE_ENVMAP ) || defined( PHONG ) || defined( PHYSICAL ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )
#ifdef USE_SKINNING #ifdef USE_SKINNING
......
...@@ -54,6 +54,7 @@ var ShaderLib = { ...@@ -54,6 +54,7 @@ var ShaderLib = {
UniformsLib.bumpmap, UniformsLib.bumpmap,
UniformsLib.normalmap, UniformsLib.normalmap,
UniformsLib.displacementmap, UniformsLib.displacementmap,
UniformsLib.gradientmap,
UniformsLib.fog, UniformsLib.fog,
UniformsLib.lights, UniformsLib.lights,
{ {
...@@ -68,31 +69,6 @@ var ShaderLib = { ...@@ -68,31 +69,6 @@ var ShaderLib = {
}, },
toon: {
uniforms: Object.assign( {},
UniformsLib.common,
UniformsLib.aomap,
UniformsLib.lightmap,
UniformsLib.emissivemap,
UniformsLib.bumpmap,
UniformsLib.normalmap,
UniformsLib.displacementmap,
UniformsLib.gradientmap,
UniformsLib.fog,
UniformsLib.lights,
{
emissive : { value: new Color( 0x000000 ) },
specular : { value: new Color( 0x111111 ) },
shininess: { value: 30 }
}
),
vertexShader: ShaderChunk.meshtoon_vert,
fragmentShader: ShaderChunk.meshtoon_frag
},
standard: { standard: {
uniforms: Object.assign( {}, uniforms: Object.assign( {},
......
...@@ -17,6 +17,7 @@ uniform float opacity; ...@@ -17,6 +17,7 @@ uniform float opacity;
#include <lightmap_pars_fragment> #include <lightmap_pars_fragment>
#include <emissivemap_pars_fragment> #include <emissivemap_pars_fragment>
#include <envmap_pars_fragment> #include <envmap_pars_fragment>
#include <gradientmap_pars_fragment>
#include <fog_pars_fragment> #include <fog_pars_fragment>
#include <bsdfs> #include <bsdfs>
#include <lights_pars> #include <lights_pars>
......
#define TOON
uniform vec3 diffuse;
uniform vec3 emissive;
uniform vec3 specular;
uniform float shininess;
uniform float opacity;
#include <common>
#include <packing>
#include <color_pars_fragment>
#include <uv_pars_fragment>
#include <uv2_pars_fragment>
#include <map_pars_fragment>
#include <alphamap_pars_fragment>
#include <aomap_pars_fragment>
#include <lightmap_pars_fragment>
#include <emissivemap_pars_fragment>
#include <envmap_pars_fragment>
#include <gradientmap_pars_fragment>
#include <fog_pars_fragment>
#include <bsdfs>
#include <lights_pars>
#include <lights_phong_pars_fragment>
#include <shadowmap_pars_fragment>
#include <bumpmap_pars_fragment>
#include <normalmap_pars_fragment>
#include <specularmap_pars_fragment>
#include <logdepthbuf_pars_fragment>
#include <clipping_planes_pars_fragment>
void main() {
#include <clipping_planes_fragment>
vec4 diffuseColor = vec4( diffuse, opacity );
ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
vec3 totalEmissiveRadiance = emissive;
#include <logdepthbuf_fragment>
#include <map_fragment>
#include <color_fragment>
#include <alphamap_fragment>
#include <alphatest_fragment>
#include <specularmap_fragment>
#include <normal_flip>
#include <normal_fragment>
#include <emissivemap_fragment>
// accumulation
#include <lights_phong_fragment>
#include <lights_template>
// modulation
#include <aomap_fragment>
vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
#include <envmap_fragment>
gl_FragColor = vec4( outgoingLight, diffuseColor.a );
#include <premultiplied_alpha_fragment>
#include <tonemapping_fragment>
#include <encodings_fragment>
#include <fog_fragment>
}
#define TOON
varying vec3 vViewPosition;
#ifndef FLAT_SHADED
varying vec3 vNormal;
#endif
#include <common>
#include <uv_pars_vertex>
#include <uv2_pars_vertex>
#include <displacementmap_pars_vertex>
#include <envmap_pars_vertex>
#include <color_pars_vertex>
#include <morphtarget_pars_vertex>
#include <skinning_pars_vertex>
#include <shadowmap_pars_vertex>
#include <logdepthbuf_pars_vertex>
#include <clipping_planes_pars_vertex>
void main() {
#include <uv_vertex>
#include <uv2_vertex>
#include <color_vertex>
#include <beginnormal_vertex>
#include <morphnormal_vertex>
#include <skinbase_vertex>
#include <skinnormal_vertex>
#include <defaultnormal_vertex>
#ifndef FLAT_SHADED // Normal computed with derivatives when FLAT_SHADED
vNormal = normalize( transformedNormal );
#endif
#include <begin_vertex>
#include <displacementmap_vertex>
#include <morphtarget_vertex>
#include <skinning_vertex>
#include <project_vertex>
#include <logdepthbuf_vertex>
#include <clipping_planes_vertex>
vViewPosition = - mvPosition.xyz;
#include <worldpos_vertex>
#include <envmap_vertex>
#include <shadowmap_vertex>
}
...@@ -15,7 +15,7 @@ function WebGLPrograms( renderer, capabilities ) { ...@@ -15,7 +15,7 @@ function WebGLPrograms( renderer, capabilities ) {
MeshBasicMaterial: 'basic', MeshBasicMaterial: 'basic',
MeshLambertMaterial: 'lambert', MeshLambertMaterial: 'lambert',
MeshPhongMaterial: 'phong', MeshPhongMaterial: 'phong',
MeshToonMaterial: 'toon', MeshToonMaterial: 'phong',
MeshStandardMaterial: 'physical', MeshStandardMaterial: 'physical',
MeshPhysicalMaterial: 'physical', MeshPhysicalMaterial: 'physical',
LineBasicMaterial: 'basic', LineBasicMaterial: 'basic',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册