zoukankan      html  css  js  c++  java
  • three.js为何如此奇妙

    WebGL是在浏览器中实现三维效果的一套规范,而最初使用WebGL原生的API来写3D程序是一件非常痛苦的事情,在辛苦的付出下WebGL开源框架出现了,其中three.js就是非常优秀的一个,它掩盖了很多麻烦的细节,那么,就让我们一起来看看,什么是three.js吧!

    threejs可以将它理解成three + js,three表示3D的意思,js表示javascript的意思。那么合起来,three.js就是使用javascript 来写3D程序的意思。Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D。

    JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。也是世界上最流行的编程语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。Javascript是运行在网页端的脚本语言,那么毫无疑问Three.js也是运行在浏览器上的。

    如果我们需要使用Threejs来绘图,只需要创建一个最小绘图环境即可。Threejs在底层其实还是调用html5中的canvas api来实现绘图的。但和我们一般绘制2D图像不同,Threejs在底层使用的是canvas的webgl context来实现3D绘图。webgl context本身更多是直接对gpu的操作,用起来相当不直观,为此Threejs在顶层对3D绘图所需的各种元素(例如场景,摄影机,灯光,几何图像,材质等)进行了封装

    threejs三大组件

    这三大组件分别是相机(Camera)、渲染器(Renderer)和场景(Scene),这三个组件是创建3D图形的必备组件。其中:

    场景用来容纳图形元素,包含所有需要显示的3D物体以及其他相关元素的容器。场景相当于宇宙,而图形元素就是星星,图形元素只有添加到场景中,其坐标、大小等才有意义。摄影机的作用是决定3D场景如何投影到2D画布之上,定义可视域,确定哪些图形元素是可见的。渲染器则负责用如何渲染出图像,是使用WegGL还是Canvas,用于最后绘制的画笔。

    原文

  • 相关阅读:
    python 类定义 继承
    BAYSY2 的LVDS引脚 笔记
    Fedora20-32bit cross-compiling arm-linux-gcc4.3.2
    以冒泡排序为例--malloc/free 重定向stdin stdout
    笔记:程序内存管理 .bss .data .rodata .text stack heap
    第一章 数值和码制
    《将博客搬至CSDN》
    Servlet 3.0 新特性
    java Servlet接口及应用
    C语言输出单个汉字字符
  • 原文地址:https://www.cnblogs.com/wush-1215/p/10112141.html
Copyright © 2011-2022 走看看