基于Three.js 3D引擎的三维网页实现与加密
摘要随着网络速度的提升和计算机硬件的革新使得网页的三维实现成为现实。而WebGL库Three.js 3D引擎的出现更为三维网页的开发增添色彩。文章主要研究与探索利用Three.js 3D引擎开发三维网页 以及对其实现代码进行js加密。
关键词 Three.js 3D引擎三维网页 js加密
中图分类号 TP393文献标识码 A文章编号 1006-8937 2014 2-0079-02
近年来 网络速度和计算机硬件得到了迅速的发展为WE B三维网页的探索与开发提供了基础与条件。在这个背景下Three.js 3D引擎应时而生其基于WebGL并且完全采用JavaScript编写而成 因此更适于三维网页的开发。使用Three.js 3D引擎开发三维网页只需一个Web浏览器I E尚不直接支持不需要下载任何插件I E内核浏览器除外因此开发使用更加方便。本文主要介绍如何使用Three.js 3D引擎实现三维网页 以及对使用Three.js 3D引擎开发的三维网页做出简单的代码JavaScript代码加密。
1 Three.js三维网页概述与实现
Three.js是基于WebGL的一款开发框架是调用底层OpenGL ES图形库的一个javascript接口属于Html5技术的一个分支。WebGL通过网页中的新型标签进行显示。通过增加OpenGL ES 2.0的一个JavaScript绑定WebGL可以为HTML5 Canvas提供硬件3D加速渲染这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3 D场景和模型。
1.1 Three.js 3D引擎
在此作一简略介绍
①首先是加载Three.js 3D引擎的库文件 即引入Three.js文件基础代码是 。
②创建场景基础代码是 var sc ene=new THREE.Sc ene 。
③创建摄像机例如 var camera=new THREE.Perspe-ctiveCam era VIEW_ANGLE ASP ECT NEAR FAR 当然这里还需要根据实际情况选择不同相机并可以对相机作出设置。
④添加渲染器例如 var renderer=new THREE.Web-
GL Renderer {ant ia lias true} 如果需要可以设置不同的渲染器并可以根据情况进行设置。
⑤网格模型的构建与导入、材质的添加与灯光效果的添加完成以上四步后一个三维网页的骨架就已经搭建成功了之后我们就可以在其中绘制构建网格模型、添加材质以及灯光等效果了。简单的网格模型可以直接使用代码绘制渲染当然如果想要引入复杂的模型比作使用建模工具制作的模型 就需要使用相应的函数进行加载 例如 newT HREE.J S ONLoader 当然再添加上材质并添加上灯光效果会更好。
⑥最后还需要做的是渲染循环 renderer.render sc ene c amera 以实现动画效果。
1.2实现方式和流程
1.2.1三维建模
利用三维建模工具3ds max或者maya或者blender等制作三维模型、添加材质、灯光等特效。然后将模型保存成obj格式的文件或者直接使用blend er保存成js格式的文件。
1.2.2模型转换
对于obj格式的文件Three.js就已经能够加载进网页之中了这里我们使用的是J SON数据类型的文件。即将obj格式的文件转换成js格式的文件。格式装换过程
先安装P ython在此使用的是P ython的2.6.0版本。然后使用命令 D P ython26
python d convert_obj_three.py-i d model.obj -o d model.js生成的JSON数据类型的文件。
1.2.3代码开发
建议采用VI M编写代码使用Chr o m e浏览器调试。为了能使Chr o m e能够更好的支持Web GL我们需要对其作出简单配置在Chrome桌面快捷方式上点击右键、选择属性然后将――enable-w ebgl――ignore-gpu-b lac klist――all-ow-file-access-from-files粘贴到“目标”文本框里。
2 Three.js三维网页实现代码加密
Three.js 3D引擎是完全使用javaScript编写成的 因此基于Three.js 3D引擎的三维网页也继承Three.js 3D引擎的这一特点使用javaScript编写而成。而目前如果对javaScript不做安全控制的化代码完全暴露在网络中因此我么需要对其代码做出简单加密以降低其可读性 同时提高其安全性。
JavaScript代码加密的本质是降低代码的可读性从而提高解密、阅读上的难度。因为使用Three.js 3D引擎实现的三维网页其主要代码是JavaScript而且代码量很大运行速度与性能也局限于硬件与网速因此如果对代码做出过多的操作极大程度上会降低代码的运行性能与速度因此采用将文明定长字符串逐一加10变换为16进制的方式之后对其进行去除缩进、空格、注释等进行简单压缩然后简单使用加密即可。而不必要做出复杂的代码混淆加密。其中加解密文件js.min.js代码如下
①加密。
$document.readyfunction {$”#enc ode”.c lickfunction {var s=$”#txt 1”.val var b=““for var i=0 i
华为云818上云活动活动截止到8月31日。1、秒杀限时区优惠仅限一单!云服务器秒杀价低至0.59折,每日9点开抢秒杀抢购活动仅限早上9点开始,有限量库存的。2G1M云服务器低至首年69元。2、新用户折扣区优惠仅限一单!购云服务器享3折起加购主机安全及数据库。企业和个人的优惠力度和方案是不同的。比如还有.CN域名首年8元。华为云服务器CPU资源正常没有扣量。3、抽奖活动在8.4-8.31日期间注册并...
racknerd在促销美国洛杉矶multacom数据中心的一款大硬盘服务器,用来做存储、数据备份等是非常划算的,而且线路还是针对亚洲有特别优化处理的。双路e5+64G内存,配一个256G的SSD做系统盘,160T SAS做数据盘,200T流量每个月,1Gbps带宽,5个IPv4,这一切才389美元...洛杉矶大硬盘服务器CPU:2 * e5-2640v2内存:64G(可扩展至128G,+$64)硬...
spinservers是Majestic Hosting Solutions LLC旗下站点,商家提供国外服务器租用和Hybrid Dedicated等产品,数据中心包括美国达拉斯和圣何塞机房,机器默认10Gbps端口带宽,高配置硬件,支持使用PayPal、信用卡、支付宝或者微信等付款方式。农历春节之际,商家推出了几款特别促销配置,最低双路E5-2630Lv3机器每月149美元起,下面列出几款机器...