Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ It can be used to render water in some situations like complete ocean or small s

### Dependencies

- Three.js r71 to render the scene : https://github.com/mrdoob/three.js/
- Three.js r87 to render the scene : https://github.com/mrdoob/three.js/
- JQuery 1.10.2 as a helper : https://github.com/jquery/jquery
- Terrain-generator for procedural terrain generation : https://github.com/jbouny/terrain-generator

Expand Down
1,747 changes: 880 additions & 867 deletions assets/libs/three.min.js

Large diffs are not rendered by default.

11 changes: 6 additions & 5 deletions demo/assets/js/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,16 @@ var DEMO = {
// Create terrain
this.loadTerrain(inParameters);

// Load textures
var waterNormals = new THREE.ImageUtils.loadTexture('../assets/img/waternormals.jpg');
// Load textures
var loader = new THREE.TextureLoader();
var waterNormals = loader.load('../assets/img/waternormals.jpg');
waterNormals.wrapS = waterNormals.wrapT = THREE.RepeatWrapping;

// Load filesdnd texture
new Konami(function() {
if(DEMO.ms_FilesDND == null)
{
var aTextureFDND = THREE.ImageUtils.loadTexture("assets/img/filesdnd_ad.png");
var aTextureFDND = loader.load("assets/img/filesdnd_ad.png");
aTextureFDND.minFilter = THREE.LinearFilter;
DEMO.ms_FilesDND = new THREE.Mesh(new THREE.PlaneGeometry(1000, 1000), new THREE.MeshBasicMaterial({ map : aTextureFDND, transparent: true, side : THREE.DoubleSide }));

Expand Down Expand Up @@ -92,7 +93,7 @@ var DEMO = {
},

loadSkyBox: function loadSkyBox() {
var aCubeMap = THREE.ImageUtils.loadTextureCube([
var aCubeMap = new THREE.CubeTextureLoader().load([
'assets/img/px.jpg',
'assets/img/nx.jpg',
'assets/img/py.jpg',
Expand Down Expand Up @@ -123,7 +124,7 @@ var DEMO = {

loadTerrain: function loadTerrain(inParameters) {
var terrainGeo = TERRAINGEN.Get(inParameters);
var terrainMaterial = new THREE.MeshPhongMaterial({ vertexColors: THREE.VertexColors, shading: THREE.FlatShading, side: THREE.DoubleSide });
var terrainMaterial = new THREE.MeshPhongMaterial({ vertexColors: THREE.VertexColors, flatShading: true, side: THREE.DoubleSide });

var terrain = new THREE.Mesh(terrainGeo, terrainMaterial);
terrain.position.y = - inParameters.depth * 0.4;
Expand Down
6 changes: 3 additions & 3 deletions demo_basic/assets/js/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ var DEMO = {
directionalLight.position.set(-600, 300, 600);
this.ms_Scene.add(directionalLight);

// Load textures
var waterNormals = new THREE.ImageUtils.loadTexture('../assets/img/waternormals.jpg');
// Load textures
var waterNormals = new THREE.TextureLoader().load('../assets/img/waternormals.jpg');
waterNormals.wrapS = waterNormals.wrapT = THREE.RepeatWrapping;

// Create the water effect
Expand Down Expand Up @@ -65,7 +65,7 @@ var DEMO = {
},

loadSkyBox: function loadSkyBox() {
var aCubeMap = THREE.ImageUtils.loadTextureCube([
var aCubeMap = new THREE.CubeTextureLoader().load([
'../demo/assets/img/px.jpg',
'../demo/assets/img/nx.jpg',
'../demo/assets/img/py.jpg',
Expand Down
6 changes: 3 additions & 3 deletions demo_mobile/assets/js/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ var DEMO = {
directionalLight.position.set(-400, 100, -500);
this.ms_Scene.add(directionalLight);

// Load textures
var waterNormals = new THREE.ImageUtils.loadTexture('../assets/img/waternormals.jpg');
// Load textures
var waterNormals = new THREE.TextureLoader().load('../assets/img/waternormals.jpg');
waterNormals.wrapS = waterNormals.wrapT = THREE.RepeatWrapping;

// Create the water effect
Expand Down Expand Up @@ -85,7 +85,7 @@ var DEMO = {
path + 'skybox_4' + format, path + 'skybox_5' + format
];

var cubeMap = THREE.ImageUtils.loadTextureCube(urls);
var cubeMap = new THREE.CubeTextureLoader().load(urls);
cubeMap.format = THREE.RGBFormat;
cubeMap.flipY = false;

Expand Down
4 changes: 2 additions & 2 deletions demo_test/assets/js/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ var DEMO = {
this.ms_Scene.fog = new THREE.FogExp2( 0xffffff, 0.0005 );

// Load textures
var waterNormals = new THREE.ImageUtils.loadTexture('../assets/img/waternormals.jpg');
var waterNormals = new THREE.TextureLoader().load('../assets/img/waternormals.jpg');
waterNormals.wrapS = waterNormals.wrapT = THREE.RepeatWrapping;

// Create the water effect
Expand Down Expand Up @@ -86,7 +86,7 @@ var DEMO = {
},

loadSkyBox: function loadSkyBox() {
var aCubeMap = THREE.ImageUtils.loadTextureCube([
var aCubeMap = new THREE.CubeTextureLoader().load([
'../demo/assets/img/px.jpg',
'../demo/assets/img/nx.jpg',
'../demo/assets/img/py.jpg',
Expand Down
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ <h3>
<a id="dependencies" class="anchor" href="#dependencies" aria-hidden="true"><span class="octicon octicon-link"></span></a>Dependencies</h3>

<ul>
<li>Three.js r70 to render the scene : <a href="https://github.com/mrdoob/three.js/">https://github.com/mrdoob/three.js/</a>
<li>Three.js r87 to render the scene : <a href="https://github.com/mrdoob/three.js/">https://github.com/mrdoob/three.js/</a>
</li>
<li>JQuery 1.10.2 as a helper : <a href="https://github.com/jquery/jquery">https://github.com/jquery/jquery</a>
</li>
Expand Down
28 changes: 17 additions & 11 deletions water-material.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ THREE.ShaderLib['water'] = {
'varying vec3 surfaceX;',
'varying vec3 surfaceY;',
'varying vec3 surfaceZ;',


THREE.ShaderChunk[ "fog_pars_vertex"],

'void main()',
'{',
' mirrorCoord = modelMatrix * vec4(position, 1.0);',
Expand All @@ -46,7 +48,11 @@ THREE.ShaderLib['water'] = {
' surfaceZ = vec3( modelMatrix[2][0], modelMatrix[2][1], modelMatrix[2][2]);',

' mirrorCoord = textureMatrix * mirrorCoord;',
' gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);',
' vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );',
' gl_Position = projectionMatrix * mvPosition;',

THREE.ShaderChunk[ "fog_vertex"],

'}'
].join('\n'),

Expand Down Expand Up @@ -127,9 +133,9 @@ THREE.ShaderLib['water'] = {
' vec3 albedo = mix(sunColor * diffuseLight * 0.3 + scatter, (vec3(0.1) + reflectionSample * 0.9 + reflectionSample * specularLight), reflectance);',

' vec3 outgoingLight = albedo;',
THREE.ShaderChunk[ "fog_fragment" ],

' gl_FragColor = vec4( outgoingLight, alpha );',
THREE.ShaderChunk[ "fog_fragment" ],
'}'
].join('\n')

Expand Down Expand Up @@ -184,8 +190,8 @@ THREE.Water = function (renderer, camera, scene, options) {

this.mirrorCamera = this.camera.clone();

this.texture = new THREE.WebGLRenderTarget(width, height);
this.tempTexture = new THREE.WebGLRenderTarget(width, height);
this.renderTarget = new THREE.WebGLRenderTarget(width, height);
this.tempRenderTarget = new THREE.WebGLRenderTarget(width, height);

var mirrorShader = THREE.ShaderLib["water"];
var mirrorUniforms = THREE.UniformsUtils.clone(mirrorShader.uniforms);
Expand All @@ -201,7 +207,7 @@ THREE.Water = function (renderer, camera, scene, options) {

this.mesh = new THREE.Object3D();

this.material.uniforms.mirrorSampler.value = this.texture;
this.material.uniforms.mirrorSampler.value = this.renderTarget.texture;
this.material.uniforms.textureMatrix.value = this.textureMatrix;
this.material.uniforms.alpha.value = this.alpha;
this.material.uniforms.time.value = this.time;
Expand All @@ -215,8 +221,8 @@ THREE.Water = function (renderer, camera, scene, options) {
this.material.uniforms.eye.value = this.eye;

if ( !THREE.Math.isPowerOfTwo(width) || !THREE.Math.isPowerOfTwo(height) ) {
this.texture.generateMipmaps = false;
this.tempTexture.generateMipmaps = false;
this.renderTarget.texture.generateMipmaps = false;
this.tempRenderTarget.texture.generateMipmaps = false;
}
};

Expand Down Expand Up @@ -346,11 +352,11 @@ THREE.Water.prototype.render = function (isTempTexture) {
// https://github.com/jbouny/ocean/issues/7
this.material.visible = false;

var renderTexture = (isTempTexture !== undefined && isTempTexture)? this.tempTexture : this.texture;
this.renderer.render(this.scene, this.mirrorCamera, renderTexture, true);
var renderTarget = (isTempTexture !== undefined && isTempTexture)? this.tempRenderTarget : this.renderTarget;
this.renderer.render(this.scene, this.mirrorCamera, renderTarget, true);

this.material.visible = true;
this.material.uniforms.mirrorSampler.value = renderTexture;
this.material.uniforms.mirrorSampler.value = renderTarget.texture;
}

};