与前几个教程类似,场景和相机等设置就不再重复声明了。这里只列出新学的内容。

1、圆柱体(圆锥体)的初始化

function initObject() {
    var geometry = new THREE.CylinderGeometry(0, 10, 50);
    var material = new THREE.MeshLambertMaterial({
        color: 0x483D8B
    });
    cylinder = new THREE.Mesh(geometry, material);
    cylinder.rotation.x = 0.15 * Math.PI;
    scene.add(cylinder);
}

new THREE.CylinderGeometry的三个参数含义依次为:圆柱体上平面的圆的半径、圆柱体下平面的圆的半径、圆柱体的长。

2、点光源

var light;
function initLight() {
    light = new THREE.PointLight(0xffffff);
    light.position.set(0, 0, 200);
    scene.add(light);
}

点光源的使用可以使得3D图形具有立体感,主要体现在阴影的效果方面,如下图:

3、动画效果的实现

function animation3D() {
    cylinder.position.x -= 0.2;
    renderer.render(scene, camera);
    requestAnimationFrame(animation3D);
}

修改相机的位置后,需要重新渲染,否则不生效。不断循环修改相机的位置,即可形成动画的效果。

最新文章

  1. 12月8日phpcms添加子栏目后的读取
  2. useful tips for win7--close the noise volume(关掉win7开机、系统操作的声音)
  3. EC笔记,第一部分:3.尽量使用const
  4. iOS并发编程指南之同步
  5. ORM之PetaPoco入门(一)--Petapoco简介
  6. 使用grub硬盘重装ubuntu
  7. css position 相对定位
  8. ZOJ 3601 Unrequited Love 【STL__pair_的应用】
  9. HTML5 开发APP
  10. scrolling 优化 避免卡顿
  11. Postgresql 启动could not create listen socket for "localhost"错误的解决
  12. boost学习目录
  13. C# 关于X86/X64/AnyCpu 的关系
  14. React 记录(5)
  15. 常用vi命令
  16. SQL Server死锁的解决过程
  17. 设置头像、商品、轮播图为背景图时需要的css
  18. 调用微信的扫一扫功能详解说明---(java 排坑版)
  19. castle动态代理的使用
  20. 42. Trapping Rain Water *HARD*

热门文章

  1. centos7 关闭防护墙
  2. struts配置result类型为json后导致页面不能访问的错误
  3. Linux下批处理文件编写
  4. oracle rename数据文件的两种方法
  5. Docker安装 和简单使用
  6. Configure Virtual Serial Port Driver (vspd)注册表
  7. Java中sleep方法和wait的详细区别
  8. 黄聪:多个wordpress网站(不同域名)共享用户数据的方法
  9. 持续集成(Continuous Integration)基本概念与实践
  10. 远程服务器安装mysql数据库