小编Wil*_*hoe的帖子

三个js - 克隆着色器并改变统一值

我正在创建一个着色器来生成带阴影的地形.

我的出发点是克隆lambert着色器并使用ShaderMaterial最终使用我自己的脚本进行自定义.

标准方法效果很好:

var material = new MeshLambertMaterial({map:THREE.ImageUtils.loadTexture('images/texture.jpg')});

var mesh = new THREE.Mesh(geometry, material);

etc
Run Code Online (Sandbox Code Playgroud)

结果: 使用标准朗伯材料的结果

但是我想使用lambert材料作为基础并在其上工作,所以我尝试了这个:

var lambertShader = THREE.ShaderLib['lambert'];
var uniforms = THREE.UniformsUtils.clone(lambertShader.uniforms);

var texture = THREE.ImageUtils.loadTexture('images/texture.jpg');
uniforms['map'].texture = texture;

var material = new THREE.ShaderMaterial({
    uniforms: uniforms,
    vertexShader: lambertShader.vertexShader,
    fragmentShader: lambertShader.fragmentShader,
    lights:true,
    fog: true
});

var mesh = new THREE.Mesh(geometry, material);
Run Code Online (Sandbox Code Playgroud)

结果如下: 克隆朗伯着色器和更改地图制服的结果

看起来好像着色器没有考虑我添加的新纹理,但是当我记录制服时查看检查器时,地图对象具有正确的值.

我对三个很新,所以我可能会做一些根本错误的事情,如果有人能指出我在这里正确的方向,这将是伟大的.

如果有帮助,我也可以提供演示链接?

谢谢,威尔

编辑:

这是一些演示链接.

使用着色器材质进行演示:http://dev.thinkjam.com/experiments/threejs/terrain/terrain-shader-material.html

使用朗伯材料的演示:http://dev.thinkjam.com/experiments/threejs/terrain/terrain-lambert-material.html

shader textures clone webgl three.js

11
推荐指数
1
解决办法
5401
查看次数

HTML/CSS无论屏幕大小如何,都要将徽标定位在左上角

我的问题有点难以解释!基本上,我正在设计一个HTML/CSS网站,我需要标识始终位于左上角.在Windows机器上,如果我从左侧调整大小,您可以从任何一侧调整浏览器的大小,我的徽标会被切断.

我正在寻找的一个很好的例子是Facebook,但是你调整屏幕大小,徽标将保持锁定在左上角.

我在这里有一个金发碧眼的时刻,还是有特定的方式来做这件事?

html css

8
推荐指数
2
解决办法
4万
查看次数

Three.js - 获得低聚外观

我试图以低聚风格生成一些地形,供参考,这种风格:

我的意思是每个三角形都是一个阴影.

当我尝试这样的东西时,阴影非常平滑.这是一个只有几个三角形的例子:

http://www.willdonohoe.com/stackoverflow-images/smooth-shading.png

我也试过添加阴影,但这也没有产生预期的效果.这是一个更多三角形添加阴影的镜头:

http://www.willdonohoe.com/stackoverflow-images/added-shadows.png

通过三个文档,材质类的着色属性听起来就像它可以做到的那样,但是THREE.FlatShading和THREE.NoShading似乎没有任何效果.

我需要使用一种特殊的技术来创造这种效果吗?你可以指出我的方向任何方向将非常感激.

你可以在这里找到我的第一个演示

非常感谢,

html javascript 3d three.js

3
推荐指数
1
解决办法
3369
查看次数

Box2D Flash,摧毁尸体

这是我一直希望解决的问题,虽然我永远找不到解决方法.我想我可能会遗漏一些东西,但我似乎找不到什么.

我试图从b2World中摧毁身体,我在各种教程中看到,当他们在调试绘图的情况下破坏box2d中的对象时,形状也会被破坏.出于某种原因,我这样做:

world.DestroyBody(_body)它似乎没有做任何事情.形状停留在屏幕上.

以前有人有这个问题吗?这让我很担心,因为玩游戏一段时间后,我想破坏的所有物体都会留在屏幕上,并且仍会记录真正落后于游戏的碰撞.

任何帮助将非常感激,

谢谢,
威尔

编辑:[已决议]谢谢你们,这非常有道理.

flash garbage-collection actionscript-3 box2d physics-engine

0
推荐指数
1
解决办法
3936
查看次数