webgl编程指南_给3D设计师读的Verge3D入门指南

  • 支持哪些三维软件?

  • 如何使用Verge3D插件?

  • 什么是拼图编程?

  • 如何展示我的Verge3D应用?

点击文末阅读原文,以查看超链接

Verge3D是一套面向3D设计师的WebGL应用开发工具包。对于有三维软件经验的新手来说,使用Verge3D就是在三维软件上安装和使用一个插件,但是这个插件能提供强大的交互开发能力,设计师朋友几乎不用接触代码就能开发:3D产品展示、网页游戏、AR/VR应用等等。此外,Verge3D应用还能集成进微信小程序,桌面应用程序,安卓应用程序。

支持哪些三维软件?

Verge3D应用开发大体分为三个部分:界面、3D资产、交互。其中,部分界面和全部3D资产都是在三维软件中完成的。Verge3D没有提供3D建模的功能,它是以插件方式,通过对行业里流行的三维软件提供支持来实现的。所以,从一开始你就已经掌握大部分技能了。

Verge3D直接支持Blender、3dsMax、Maya;另外Cinema4D等其它三维软件可以导出标准gltf格式,或通过FBX、OBJ等格式导入上述3个软件,实现间接支持。

f7d34e7c50249dd1301287fa293a2e6b.png

Verge3D核心功能之一是提供了从三维软件本地材质系统向WebGL材质系统的转换,这项工作是比较耗时的,目前Verge3D对Blender材质系统的支持是最先进的。

如何使用Verge3D插件?

如果是开发一个只有基础功能的3D产品展示,那么你只需要像开发网页游戏那样,按照通行的行业规范按部就班地完成建模、材质、灯光、动画,然后点击预览按钮就会在浏览器里打开一个可以360度查看的WebGL页面。

d1b597d732add213c303b0e7533ecbe0.png

但是这只是上手而已。Verge3D最强大的地方是它的交互开发能力。这里,我们需要将3D场景导出为Verge3D的glTF格式,以用于下一步的交互开发。

df88edff443a9e1e747a69a5277d8095.png

什么是拼图编程?

让设计师完成交互开发,需要提供一套友好的可视化开发工具。目前流行的是节点式编程,比如UE4,unity3d,Godot的可视化脚本。但是节点式编程可读性差、不易维护。Verge3D采用的是Google开源的Blockly方案,这是一种常见于少儿编程产品的拼图式(Puzzle)编程方案,优势是生成的JS代码可读性强,易维护,编程方式接近文本式编程,便于设计师向程序员过渡。

35f670318527336cdae8d083f0956f5d.png

从拼图编辑器界面可以看到,基本上常用的功能都以拼图块的形式归纳到相应的分类下面,需要的时候拖拽出来就可以。拼图块的连接是镶嵌式的,不像节点式编程那样额外穿插各种方向的线条。

拼图,以及背后开发团队的设计思想,都是让JavaScript和Three.js更好用。你可以用文本编辑器打开visual_logic.js文件,这里面的代码就是你用拼图写的JS代码,它们和拼图长得很相似,也许以后你会直接写出这样的代码。

如何展示我的Verge3D应用?

作为一名3D建模师,过去我要消耗大量时间用来渲染静帧图片。现在,耗时的渲染变成在浏览器中的实时渲染了,而且不再是单一角度的静帧,而是带动画,可以360度查看,可交互的网页!

你可以通过Verge3D网络(基于亚马逊云),或者自有网站发布自己的作品——仅需一个网址。

aa7e593d365f82a48ca355c245ae1da1.png

关于如何搭建网站,这是另外一个专门的话题,如果你了解不多,可以阅读《3D建站全流程指南》,这篇文章将通用的建站技术与Verge3D结合到了一起。

基本信息 原书名:WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL (OpenGL) 原出版社: Addison-Wesley Professional 作者: (美)Kouichi Matsuda Rodger Lea(松田浩一,罗杰.李) 译者: 谢光磊 出版社:电子工业出版社 ISBN:9787121229428 上架时间:2014-6-11 出版日期:2014 年6月 开本:16开 页码:470 版次:1-1 ---------------------------------------- 目录 《WebGL编程指南》 第1 章 WebGL 概述 1 WebGL 的优势 3 使用文本编辑器开发三维应用 3 轻松发布三维图形程序 4 充分利用浏览器的功能 5 学习和使用WebGL 很简单 5 WebGL 的起源 5 WebGL 程序的结构 6 总结 7 第2 章 WebGL 入门 9 Canvas 是什么? 10 使用[canvas] 标签 11 DrawRectangle.js 13 最短的WebGL 程序:清空绘图区 16 HTML 文件(HelloCanvas.html) 16 JavaScript 程序(HelloCanvas.js) 17 用示例程序做实验 22 绘制一个点(版本1) 22 HelloPoint1.html 24 HelloPoint1.js 24 着色器是什么? 25 使用着色器的WebGL 程序的结构 27 初始化着色器 29 顶点着色器 31 片元着色器 33 绘制操作 34 WebGL 坐标系统 35 用示例程序做实验 37 绘制一个点(版本2) 38 使用attribute 变量 38 示例程序(HelloPoint2.js) 39 获取attribute 变量的存储位置 41 向attribute 变量赋值 42 gl.vertexAttrib3f() 的同族函数 44 用示例程序做实验 45 通过鼠标点击绘点 46 示例程序(ClickedPoints.js) 47 注册事件响应函数 48 响应鼠标点击事件 50 用示例程序做实验 53 改变点的颜色 55 示例程序(ColoredPoints.js) 56 uniform 变量 58 获取uniform 变量的存储地址 59 向uniform 变量赋值 60 gl.uniform4f() 的同族函数 61 总结 62 第3 章 绘制和变换三角形 63 绘制多个点 64 示例程序(MultiPoint.js) 66 使用缓冲区对象 69 创建缓冲区对象(gl.createBuffer()) 70 绑定缓冲区(gl.bindBuffer()) 71 向缓冲区对象中写入数据(gl.bufferData()) 72 类型化数组 74 将缓冲区对象分配给attribute 变量(gl.vertexAttribPointer()) 75 开启attribute 变量(gl.enableVertexAttribArray()) 77 gl.drawArrays() 的第2 个和第3 个参数 78 用示例程序做实验 79 Hello Triangle 80 示例程序(HelloTriangle.js) 80 基本图形 82 用示例程序做实验 83 Hello Rectangle(HelloQuad) 84 用示例程序做实验 85 移动、旋转和缩放 86 平移 87 示例程序(TranslatedTriangle.js) 88 旋转 91 示例程序(RotatedTriangle.js) 93 变换矩阵:旋转 97 变换矩阵:平移 100 4×4 的旋转矩阵 101 示例程序(RotatedTriangle_Matrix.js) 102 平移:相同的策略 105 变换矩阵:缩放 106 总结 108 第4 章 高级变换与动画基础 109 平移,然后旋转 109 矩阵变换库:cuon-matrix.js 110 示例程序(RotatedTriangle_Matrix4.js) 111 复合变换 113 示例程序(RotatedTranslatedTriangle.js) 115 用示例程序做实验 117 动画 118 动画基础 119 示例程序(RotatingTriangle.js) 119 反复调用绘制函数(tick()) 123 按照指定的旋转角度绘制三角形(dr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值