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);
- }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。