JSFIDDLE 助力 Threejs 功能探秘

JSFIDDLE 助力 WebGL 功能探秘

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

以下示例能产生基本几何体的阴影投射,还有另一份代码,是无法投射的,和本份能投射的代码,相差不多,但确始终不得其法,需进一步核对,才能知道具体差异在哪里,哪些关键的部位起了阴影投射的作用。

还是静下心来,把每一行代码搞清楚吧,这才是捷径!

往往追求捷径的结果,就是盲人摸象,最后,越摸越离谱,连最初的无意识界都没有了。

所以佛祖告诫我们,要追求本真,象孩童一样。

其实,就是去除妄念和猜测,实事求是地按事情本来的面目去考虑问题,才不会被妄端猜测出来的东西影响你的心绪,以至偏离正途,生出事端来。

在微信中流传的一条信息,大概意思是,只要你想了,就会去不知不觉地做,做了就会产生效果,效果持续久了,就会变成习惯,习惯多了就形成性格,而性格决定着命运。

所以,要想改变,首先从想法开始改变。

这不算是唯心主义论吧,有时侯感觉,纯粹的唯物主义,往往让人们忽略和人的思维和潜意识对物质世界的改变。

而人类之所以区别于动物,最概本的就在于,人类是可以通过思维来改变其自身世界的状态,当然了,这状态,也是物质世界固有存在的多种选择之一,但至少是可以选择的。

而我们如果不加以掌控的话,就会变成了随机选择,物质世界的状态有好有坏,随机选择的结果可想而知,完全是不好状态的可能也不是没有。

综上所述,人类的高级,就在于,可以通过思考指导行动,最终改变默认的选择项,而优先选择有利的选项。

http://jsfiddle.net/4Txgp/13/embedded

var SCREEN_WIDTH = window.innerWidth - 100;
var SCREEN_HEIGHT = window.innerHeight - 100;

var camera, scene;
var canvasRenderer, webglRenderer;

var container, mesh, geometry, plane;

var windowHalfX = window.innerWidth / 2;
var windowHalfY = window.innerHeight / 2;

init();
animate();

function init() {

    container = document.createElement(‘div‘);
    document.body.appendChild(container);

    camera = new THREE.PerspectiveCamera(30, window.innerWidth / window.innerHeight, 1, 100000);
    camera.position.x = 1200;
    camera.position.y = 1000;
    camera.lookAt({
        x: 0,
        y: 0,
        z: 0
    });

    scene = new THREE.Scene();

    var groundMaterial = new THREE.MeshPhongMaterial({
        color: 0x6C6C6C
    });
    plane = new THREE.Mesh(new THREE.PlaneGeometry(500, 500), groundMaterial);
    plane.rotation.x = -Math.PI / 2;
    plane.receiveShadow = true;

    scene.add(plane);

    // LIGHTS
    scene.add(new THREE.AmbientLight(0x666666));

    var light;

    light = new THREE.DirectionalLight(0xdfebff, 1.75);
    light.position.set(300, 400, 50);
    light.position.multiplyScalar(1.3);

    light.castShadow = true;
    light.shadowCameraVisible = true;

    light.shadowMapWidth = 512;
    light.shadowMapHeight = 512;

    var d = 200;

    light.shadowCameraLeft = -d;
    light.shadowCameraRight = d;
    light.shadowCameraTop = d;
    light.shadowCameraBottom = -d;

    light.shadowCameraFar = 1000;
    light.shadowDarkness = 0.2;

    scene.add(light);

    var boxgeometry = new THREE.CubeGeometry(100, 100, 100);
    var boxmaterial = new THREE.MeshLambertMaterial({
        color: 0x0aeedf
    });
    var cube = new THREE.Mesh(boxgeometry, boxmaterial);
    cube.castShadow = true;
    cube.position.x = 0;
    cube.position.y = 100;
    cube.position.z = 0;

    scene.add(cube);

    // RENDERER
    webglRenderer = new THREE.WebGLRenderer();
    webglRenderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
    webglRenderer.domElement.style.position = "relative";
    webglRenderer.shadowMapEnabled = true;
    webglRenderer.shadowMapSoft = true;

    container.appendChild(webglRenderer.domElement);
    window.addEventListener(‘resize‘, onWindowResize, false);
}

function onWindowResize() {
    windowHalfX = window.innerWidth / 2;
    windowHalfY = window.innerHeight / 2;

    camera.aspect = window.innerWidth / window.innerHeight;
    camera.updateProjectionMatrix();

    webglRenderer.setSize(window.innerWidth, window.innerHeight);
}

function animate() {
    var timer = Date.now() * 0.0002;
    camera.position.x = Math.cos(timer) * 1000;
    camera.position.z = Math.sin(timer) * 1000;
    requestAnimationFrame(animate);
    render();
}

function render() {
    camera.lookAt(scene.position);
    webglRenderer.render(scene, camera);
}

JSFIDDLE 助力 Threejs 功能探秘

时间: 2024-08-25 03:21:55

JSFIDDLE 助力 Threejs 功能探秘的相关文章

JSFIDDLE 动力 Threejs 功能探秘

JSFIDDLE 助力 WebGL 功能探秘 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的漂亮人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino.否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 下面演示样例能产生基本几何体的阴影投射,还有还有一份代码.是无法投射的,和本份能投射的代码.相差点儿

源码提供!Android即时通讯和sns开源项目汇总

博客原地址: Android即时通讯和sns开源项目汇总 这是一个整理即时通讯(IM)和社交系统(SNS)优秀开源项目的文档,项目上传github欢迎提交更新. github地址:https://github.com/CameloeAnthony/Perfect_IM_SNS 一 即时通讯和社交系统平台 1 环信(推荐) 2 阿里百川 云旺 3 融云 4 OpenSNS -- #二 基于环信的即时通讯开源项目 数据整理自环信官网,网络数据和github.更多信息请参考环信官方网站和ImGeek

新增标注功能助力XMind 7

标注功能是XMind 7中新增加的一种有趣的附加文本功能,它结合了标签以及备注的有点并加以改进,具有很强的实用性,文本就来谈一谈这XMind 7新增的标注功能. 在讲??XMind 7标注功能??之前,我们先会议下,在XMind 6中的两个功能:备注以及标签,这两个功能都有着类似的作用就是对导图中的某一主题进行内容上的补充说明,但也有一定的缺点,比如备注不能直接将内容显示在导图中需要打开才能看见,而标签的内容形式却有限不能添加图片之类的内容. 而XMind 7标注功能从名字上来将就已经透露一点倪

微会动平台免费开放多种活动场景现场抽奖功能产品助力企业市场活动

信息化.数字化科技技术正在促使会议.展会等市场品牌营销活动进行着变革与升级,数据精细化运营管理带动营销增长已然成为当前活动产业发展的态势.微信作为热门的社交信息平台,也是移动端的一大入口,正在演变成为一大商业交易平台,其对营销行业带来的颠覆性变化开始显现. 移动互联网.智能手机.社交媒体的快速普及,使得以微信为主的移动终端成为展商和观众在互联网搜索引擎外,获取会议等市场活动信息的另一重要入口,也成为了近几年会议企业营销转战的必争之地.微信二维码也以几近简单粗暴的方式,挤满了从会议活动海报.会议活

秒杀功能上线,酷客多助力商家快速打造爆款!

多商户小程序V1.4.1小程序版本更新说明更新时间:2018年7月13号一. 更新功能清单运营平台1. DIY视频组件增加添加封面功能,在小程序端可展示视频封面:2. DIY编辑,快捷入口与底部导航增加微客中心:3. 增加DIY公告插件:4. 增加个人中心页面编辑,可关闭开启功能入口:5. 新增秒杀活动组件,商品详情展示秒杀倒计时:小程序端6. 附近的门店显示距离,并且能一键导航:7. 订单详情页增加为您推荐,按销量排序:8. 微客中心,佣金账户增加转入余额功能:9. 社区返回帖子列表,固定在上

移动端/云端身份证识别助力手机APP功能亮点

移动端/云端身份证识别,即OCR文字识别,使用图像处理,字符定位,字符切割,字符识别,图像矫正等技术.开发者不需要了解技术的背后咋么处理的,只当做移动端/云端身份证识别是一个黑盒子,给出SDK和API接口调用,直接使用就可以了. 移动端/云端身份证识别使用OCR文字识别技术,使用视频预览模式识别,能够像扫描二维码一样扫描识别身份证,一两秒左右就能录入一个身份证信息,准确率比人工的手动输入要高出很多.这个就是产品经理为什么青睐身份证OCR识别的原因. 现如今,大量的APP存在身份证的录入,移动端/

一张图看懂ANSYS17.0 流体 新功能与改进

一张图看懂ANSYS17.0 流体 新功能与改进 提交 我的留言 加载中 已留言 一张图看懂ANSYS17.0 流体 新功能与改进 原创2016-02-03ANSYS模拟在线模拟在线 模拟在线 微信号sim_ol 功能介绍这是数值模拟.仿真分析领域最大的公众号,没有之一!!! 点上方“模拟在线”查看更多“牛B”资讯! 感谢ANSYS公司对平台的友情支持,本次17.0的改进报告均为ANSYS提供(授权直接摘抄,确实给小编省事不少啊).本次首先带来是流体方面的改进和优化.后续陆续推送结构.电磁等各方

可视化工具gephi源码探秘(二)---导入netbeans

在上篇<可视化工具gephi源码探秘(一)>中主要介绍了如何将gephi的源码导入myeclipse中遇到的一些问题,此篇接着上篇而来,主要讲解当下通过myeclipse导入gephi源码的可行性不高以及熟悉netbeans,并把原本基于netbeans平台开发的gephi源码导入进netbeans后启动正常运行的过程,其中有遇到的不少问题和相应的解决方法. 前日工作梗概(还是沿着想把源码导入myeclipse的思路): 经过从各大子模块的pom.xml中筛选出符合条件的jar包写入项目下的p

CustomerWise助力网目信息,支持全球IT外包运维流程化管理

2014年4月,北京--TechExcel喜签网目信息技术(上海)有限公司(以下简称"网目信息"),采用TechExcel公司CustomerWise产品助力其建立全球用户统一门户,统一各分公司的服务标准和服务流程,为用户提供全球标准化的服务. ICONZ-Webvisions公司(网目信息)总部设在新加坡,拥有20多年的IT运维及外包服务经验历史,是唯一以亚洲为中心,为亚洲.澳大利亚和全球市场提供"云"和托管服务的供应商.ICONZ-Webvisions可以利用其