查看: 1436|回复: 0
打印 上一主题 下一主题

[WEBGL] 利用HTML5构筑物理模拟环境3.5【转】

[复制链接]

5552

主题

2

听众

8万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
11

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-8-22 15:13:46 |只看该作者 |倒序浏览
例2-5:TUTORIAL2_5.HTML(纹理)
利用Three.js 能够非常简单就实现纹理的粘贴。


到这里指定颜色物体的材质中,按照选择的纹理就能够自动进行纹理粘贴。 具体的代码如下。
var sphere, sphere2 ;

function initObject(){

  var texture1  = new THREE.ImageUtils.loadTexture('earthmap1k.jpg');

  sphere1 = new THREE.Mesh(

    new THREE.SphereGeometry(50,50,50),

    new THREE.MeshLambertMaterial({map: texture1})

  );

  scene.add(sphere1);

  sphere1.position.set(0,0,0);

  var texture2  = new THREE.ImageUtils.loadTexture('moonmap1k.jpg');

  sphere2 = new THREE.Mesh(

    new THREE.SphereGeometry(5,20,20),

    new THREE.MeshLambertMaterial({map: texture2})

  );

  scene.add(sphere2);

}但是,因为WebGL禁止使用跨域纹理资源,所以也不能读取本地的纹理资源。
鼠标事件

鼠标事件例

事件名 意思

onmousedown 鼠标被按下的时候

onmouseup 鼠标弹上的时候

onmousemove 鼠标移动的时候

onmouseover 鼠标移动到物体的上面的时候

onmouseout 鼠标从物体上面移出物体范围的时候
利用鼠标事件,在浏览器中进行特定的动作时, 就能够调用Javascript功能。 而且,事件发生时鼠标的位置也能够获取到。 关于鼠标事件的处理,具体参照下面。
window.onmousedown = function (ev){

  var x1 = ev.clientX; //マウスのx座標(ブラウザ上の座標)の取得

  var y1 = ev.clientY; //マウスのy座標(ブラウザ上の座標)の取得

  var x2 = ev.screenX; //マウスのx座標(ディスプレイ上の座標)の取得

  var y2 = ev.screenY; //マウスのy座標(ディスプレイ上の座標)の取得
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-7-24 13:58 , Processed in 0.186925 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部