【问题标题】:Animate a procedural sea in Three.js在 Three.js 中为程序海设置动画
【发布时间】:2016-04-21 11:35:42
【问题描述】:

我正在使用 Three.js 进行我的第一个项目,但我现在正在碰壁。

我想知道在 Three.js 中制作动画(低多边形)海的最佳方法是什么,从昨天开始我一直在尝试使用置换贴图,但我一直在阅读置换贴图无法动画化? (这是真的吗?)

var faceGeo = new THREE.PlaneGeometry(200,200,subdivisions,subdivisions);
var faceMat = new THREE.MeshPhongMaterial({color: 0xeeeeee, side: THREE.DoubleSide,transparent: true,opacity: .3,specular: 0x333333,shading: THREE.FlatShading})
var face1 = new THREE.Mesh(faceGeo,faceMat);

face1.rotation.x = -(Math.PI /2);
face1.position.y = -30
face1.position.z = -90

textureDiff.load("_textures/dispmap_sea.png",function(image){
  image.wrapS = THREE.RepeatWrapping;
  image.wrapT = THREE.RepeatWrapping;
  image.repeat = new THREE.Vector2(1,1);
  image.anisotropy = renderer.getMaxAnisotropy();

  face1.material.displacementMap = image;
  face1.material.displacementScale = 10;
});

更新中

displacementPos++;

face1.material.displacementMap.offset = new THREE.Vector2(displacementPos,displacementPos);

face1.material.needsUpdate = true;
face1.material.displacementMap.needsUpdate = true;

这将是最简单的方法,但如果不可能,我不知道我的其他选择是什么。

感谢您的帮助。 一个 Three.js 的业余爱好者和爱好者。

【问题讨论】:

  • 尝试了解有关 Perlin Noise 的信息。虽然它用于程序地形生成,但通过一些调整可以生成奇妙的低多边形波

标签: javascript three.js textures procedural


【解决方案1】:

【讨论】:

  • 这些都是很好的例子,但它们不是我想要完成的。我希望飞机的顶点像海洋一样​​移动,但这都是非常低的多边形,看起来根本不现实。 (我也不明白如何构建那些自定义着色器,我真的是 Three.js 的初学者)但无论如何感谢您的回答。
猜你喜欢
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 2019-07-13
  • 2015-01-07
  • 2019-12-06
  • 2014-11-11
  • 2020-10-23
  • 2021-05-06
相关资源
最近更新 更多