提交 f2b21b5b 编写于 作者: M Mr.doob

WebGLRenderer2: Added antialias parameter to constructor. Removed `if` from...

WebGLRenderer2: Added antialias parameter to constructor. Removed `if` from shader, using `fog *` instead.
上级 93d55298
......@@ -133,13 +133,13 @@
scene = new THREE.Scene();
scene.fog = new THREE.Fog( 0xffffff, 0.00025 );
var geometry = new Sphere( 100, 32, 16 );
var geometry = new Sphere( 50, 32, 16 );
var uniforms = ShaderUtils.lib[ 'basic' ].uniforms;
var vertex_shader = ShaderUtils.lib[ 'basic' ].vertex_shader;
var fragment_shader = ShaderUtils.lib[ 'basic' ].fragment_shader;
var generatedTexture = new THREE.Texture( generateTexture() );
var generatedTexture = new THREE.Texture( generateTexture(), new THREE.UVMapping(), THREE.ClampToEdgeWrapping, THREE.ClampToEdgeWrapping );
var materials = [
......@@ -158,18 +158,22 @@
];
for ( var i = 0; i < 1000; i ++ ) {
for ( var i = 0; i < 5000; i ++ ) {
var mesh = new THREE.Mesh( geometry, materials[ Math.floor( Math.random() * materials.length ) ] );
mesh.position.x = Math.random() * 10000 - 5000;
mesh.position.y = Math.random() * 10000 - 5000;
mesh.position.z = Math.random() * 10000 - 5000;
mesh.rotation.x = Math.random() * 360 * ( Math.PI / 180 );
mesh.rotation.y = Math.random() * 360 * ( Math.PI / 180 );
mesh.scale.x = mesh.scale.y = mesh.scale.z = Math.random() * 4 + 1;
mesh.updateMatrix();
mesh.autoUpdateMatrix = false;
scene.addObject( mesh );
}
renderer = new THREE.WebGLRenderer2();
renderer = new THREE.WebGLRenderer2( false );
renderer.setSize( window.innerWidth, window.innerHeight );
// renderer.sortObjects = false;
container.appendChild( renderer.domElement );
......
......@@ -6,7 +6,7 @@
* @author supereggbert / http://www.paulbrunt.co.uk/
*/
THREE.WebGLRenderer2 = function () {
THREE.WebGLRenderer2 = function ( antialias ) {
var _renderList = null,
_projector = new THREE.Projector(),
......@@ -22,7 +22,8 @@ THREE.WebGLRenderer2 = function () {
try {
_gl = _canvas.getContext( 'experimental-webgl', { antialias: true } );
antialias = antialias !== undefined ? antialias : true;
_gl = _canvas.getContext( 'experimental-webgl', { antialias: antialias } );
} catch(e) { }
......@@ -79,6 +80,8 @@ THREE.WebGLRenderer2 = function () {
_viewMatrixArray.set( camera.matrix.flatten() );
_projectionMatrixArray.set( camera.projectionMatrix.flatten() );
_currentProgram = null;
/*
for ( o = 0, ol = scene.objects.length; o < ol; o++ ) {
......@@ -87,7 +90,6 @@ THREE.WebGLRenderer2 = function () {
}
*/
_currentProgram = null;
_renderList = _projector.projectObjects( scene, camera, this.sortObjects );
for ( o = 0, ol = _renderList.length; o < ol; o++ ) {
......@@ -146,13 +148,13 @@ THREE.WebGLRenderer2 = function () {
if ( scene.fog ) {
_gl.uniform1i( program.uniforms.fog, 1 );
_gl.uniform1f( program.uniforms.fog, 1 );
_gl.uniform1f( program.uniforms.fogDensity, scene.fog.density );
_gl.uniform3f( program.uniforms.fogColor, scene.fog.color.r, scene.fog.color.g, scene.fog.color.b );
} else {
_gl.uniform1i( program.uniforms.fog, 0 );
_gl.uniform1f( program.uniforms.fog, 0 );
}
......@@ -508,17 +510,14 @@ THREE.WebGLRenderer2 = function () {
// fog
pfs += 'uniform bool fog;\n';
pfs += 'uniform float fog;\n';
pfs += 'uniform vec3 fogColor;\n';
pfs += 'uniform float fogDensity;\n';
fs += 'if ( fog ) {\n';
fs += 'const float LOG2 = 1.442695;\n';
fs += 'float z = gl_FragCoord.z / gl_FragCoord.w;\n';
fs += 'float z = fog * ( gl_FragCoord.z / gl_FragCoord.w );\n';
fs += 'float fogFactor = exp2( - fogDensity * fogDensity * z * z * LOG2 );\n';
fs += 'fogFactor = clamp( fogFactor, 0.0, 1.0 );\n';
fs += 'gl_FragColor = mix( vec4( fogColor, 1.0 ), gl_FragColor, fogFactor );\n',
fs += '}\n';
fs += 'gl_FragColor = mix( gl_FragColor, vec4( fogColor, 1.0 ), 1.0 - clamp( fogFactor, 0.0, 1.0 ) );\n',
identifiers.push( 'fog', 'fogColor', 'fogDensity' );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册