三维图形可以在浏览器不仅采用以下方式实现的WebGL或
库基于WebGL的,而且通过一个简单的渲染2D画布使用HTML5画布功能此。
互联网上有很多关于如何使用
HTML5 Canvas在某些浏览器游戏中显示图形,图形甚至动画的书籍,文章和信息。
但是,几乎从未考虑过直接使用画布显示三维对象的可能性。
让我们详细介绍一下。
如果正在创建三维计算机游戏(例如3D射击游戏),则开发人员将尝试使其尽可能逼真,并为此使用图形加速器。在这种情况下,没有合适的软件工具将是不可能的。对于浏览器中的此类游戏,使用WebGL和Three.js是有意义的。最重要的是,借助为这些软件工具设计的着色器,您可以实现场景和场景中物体的逼真的照明。
但是,如果只需要从各个角度显示三维对象,则可以不使用WebGL和着色器。例如,某些CAD / CAM程序仅用于建模对象的形状,并不涉及使用逼真的照明。
在“ 画布和几何”网站上,我始终如一且详细地解释了如何仅使用HTML5画布来创建3D多面体模型的图像。
六个月前,我发表了文章Three.js and geometry,属于同名Three.js and geometry网站上的30个章节(课程),其中
我描述了使用three.js显示3D多面体模型。现在,仅使用HTML5 Canvas创建新站点上的所有模型。但是,两个站点上模型的顶点坐标的计算完全相同。唯一的区别在于图像在屏幕上的显示方式。
基本上,这两个站点可以看作是一个单独的教程,该教程
探讨了将相同模型呈现到画布的两种方法-使用three.js库,而不使用该库在画布上显示模型。通过依次或同时访问两个站点,可以看到显示相同多面体的程序的外观。
我将列出两个站点上都可用的一些功能,但是它们以不同的方式在它们上实现:
- 您几乎可以设置模型的几乎所有参数,这些参数确定模型各个部分的大小,模型面的坡度等。
- 查看模型顶点的编号。
- 缩放模型。
- ( three.js RayCaster').
- .
- . / .
- 3D- . three.js .
- .
- .
- .
WebGL/three.js — Z-.
Canvas ( ) .
online- JavaScript.
, prototype WebGeometry, . prototype. JavaScript. «», . .
C/C++ JavaScript .
, ( Chrome Firefox) Notepad++ JavaScript — —
.
, .
.
( ) Visual Studio.
, ,
Visul C++ . Chrome Firefox .
JavaScript React, Angular, Vue.
. . ( ) ES6.
.
online- . , , , ( ) .
canvas2D库用于渲染模型并将模型调整大小到画布上,
该画布实际上是HTML5 Canvas函数的一个小包装。
同时,canvas2D库中包含的函数以与WebGeometry库中包含的函数一起使用最方便的方式进行制作
。
WebGeometry. , , 3D- . , . WebGeometry
, , .
. WebGeometry。如果需要执行此类转换,则可以找到相应的功能,如果使用three.js,则可以在此库本身或流行的glMatrix库中找到
但是,上述两个库实际上没有解决解析几何问题的功能。
因此,制作了WebGeometry函数库。
Sylvester库具有一些(但不是全部)这样的功能,因此我决定基于C / C ++中的现有功能,使一个库完全适合我的任务。
, three.js.
OpenGL OpenGL .
, , .
, ,
:
Three.js 16 WebGeometry ( ), three.js.
Diamond Cuts 7 WebGeometry three.js. .
three.js.
Diamond Cuts collection in environments
Diamond Cuts with Dispersion Light .
three.js.
Visual C++ . (three.js API WebGL).
页面,您可以转到此网站的页面,其中包含 36种各种切割的模型。
这些页面上的显示使用纯 WebGL API完成。
您也可以从此处下载用 C / C ++ 和 OpenGL制作的 Windows程序的 exe文件,以查看切割模型。多个型号的 DLL文件是从同一页面下载的。
- 在页面上
闪耀在您疯狂的钻石上!在同一站点上,您可以在舞台上移动到 Pink Floyd和其他乐队的音乐,并查看切出的模型。运动控制-与计算机游戏一样,鼠标和键盘(←,→,↑,↓,<,>)。显示使用 three.js完成。
我认为这非常有趣。观看时别忘了打开声音!
我希望我的网站能对那些研究和使用3D图形和计算几何的人有所帮助。除了浏览站点之外,您还可以转到我的存储库。
感谢大家收看我的文章!