产品在线展示案例预览

  1. 玉镯在线预览:http://www.yanhuangxueyuan.com/3D/yuzhuo.html
  2. 汽车在线预览:http://www.yanhuangxueyuan.com/3D/car.html

Web3D技术历史

可通过插件或WebGL技术实现Web3D,在线网页上预览操作三维模型。

插件

最早实现Web3D技术所有技术方案,基本都要依赖特定插件来实现,渲染效率、渲染质量都有些问题,并未全面流行起来。本篇文章既然不涉及使用插件方式实现三维模型在线预览,就不在展开详述历史上需要插件实现在线预览三维模型的相关技术。

WebGL技术

说到WebGL,最容易联想到的是OpenGL或OpenGL ES。随着大多数浏览器对WebGL技术的支持,浏览器不需要安装任何插件也可以实现三维模型的在线预览和操作。

WebGL应用

WebGL技术可以用于实现产品在线预览、WebVR、Web全景、室内装修在线预览、场景漫游、三维建模应用、3D导航…,本文主要科普基于WebGL技术实现产品的在线预览与交互,比如常见的数码产品、珠宝首饰、轿车等。

基于WebGL技术实现产品三维模型在线预览

如果直接通过原生WebGL API和着色器语言来实现相对来说比较麻烦,通常来说需要通过一款三维引擎来实现,如果你是前端工程师你虽然学习JavaScript和HTML,但是你在做一些前端项目的时候会借助jquery、vuejs等库或框架,对于3D开发也是一样,需要一个封装了WebGL的库或引擎。

Three.js引擎

WebGL有多款三维引擎,国内应用最多的就是Three.js,Threejs的中文资料教程相对来说比较多,同时企业招聘WebGL工程师的时候,通常会要求你掌握Threejs三维引擎。
three.js的更多教程关注郭隆邦技术博客。

技术流程

Threejs实现产品三维模型在线预览,通常来说需要美术和技术相互配合来完成。

1.美术

3D美术借助3dmax或Blender或其他三维软件进行三维建模,渲染烘培,然后导出包含几何体数据和材质数据文件,材质通常有一些贴图。

2.技术

WebGL程序员通过threejs三维引擎的加载器加载解析美术导出的模型文件。

真实度要求

产品的展示渲染效果,在真实度方面,往往和游戏或动漫不同,对要展示的三维模型通常要求真实度要高,既然要展示一个产品必要希望一个网页展品要和真实的产品尽可能一样,质感很强,这样才能起到更好的营销效果。

渲染效果

模型几何体信息创建

所谓模型几何体信息,也就是顶点数据。虽然threejs有很多绘制几何体的API,但是一个复杂的曲面,如果不是比较规则的球体或圆环,很难用程序去写,通常需要美术需要用可视化的方式建模,也就是使用三维软件,至于软件选择,看美术需要。

材质参数设置两种方式

渲染效果程序员可以通过threejs设置材质参数实现,也可以美术来设置并包含在导出的三维模型文件中。程序可能并不擅长渲染效果设置,或者说在threejs设置材质参数远没有三维模型中设置方便,通常来说是美术来设置决定决定渲染效果的材质参数,比如透明度、高光、金属度等参数。

光照参数设置

如果想有更好的渲染效果,通常需要设置光照,如果光照设置的参数不恰当,渲染效果也会很大程度上打折扣,光照可以程序员来设置,也可美术设置。如果美术设置了光照信息,要注意导出三维模型时,模型文件格式的选择。主要有些三维模型格式并不会包含光照信息,比如stl和obj,而glTF、FBX等格式就可以包含光照信息。

动画效果

一些产品可能会有一些动画动作,比如轿车、冰箱的开门动作。通常需要美术在三维软件中设置动画,导出模型后,程序员可以通过threejs的帧动画模块相关API解析播放这些开关门动作。要注意的是,选择能包含动画信息的三维模型格式,比如glTF、FBX、threejs格式,如果选择obj话,只能展示静态模型。

次时代或PBR流程

通常游戏领域的3D美术会谈到“次时代”或“PBR”的概念,你可以理解为一种建模流程。不同的流程导出的模型材质有所不同,需要threejs中不同的材质去解析。

次时代

传统的方式就是创建次时代模型,对应threejs中的材质是高光网格材质对象MeshPhongMaterial,通常贴图文件包含颜色贴图、法线贴图和高光贴图。

PBR

PBR相比次时代技术是一种更新的模型技术,对应threejs材质是物理网格材质MeshPhysicalMaterial或标准网格材质MeshStandardMaterial。通常贴图包含颜色贴图、法线贴图、金属度贴图、粗糙度贴图。

比较

高光网格材质MeshPhongMaterial具有高光颜色和强度属性,而物理网格材质MeshPhysicalMaterial没有高光相关属性,对应的是是金属度和粗糙度属性。就贴图而言,高光强度对应的是高光贴图,金属度对应的是金属度贴图,粗糙度对应的是粗糙度贴图。

贴图

颜色贴图

颜色贴图通过uv坐标映射在网格模型表面,如果整个网格模型都是同一种颜色,这种情况,美术不导出颜色贴图也没有关系,如果一个网格模型表面不同的区域颜色不同,那就有必要使用颜色贴图。

法线贴图

法线贴图主要作用是可以减少模型文件的体积,本质就是减少顶点数量,减少顶点数量可以降低文件大小,提高网络传播速度,减少CPU顶点相关的计算量。对于曲面很少的模型,主要以平面构成,有没有法线贴图无所谓,如果是产品表面是曲面,让美术烘培法线贴图是很必要的。

团队

UI和前端

完成一个网页效果,通常需要UI先完成设计,然后前端使用代码实现。目前大多数的互联网公司都是有前端工程师和UI设计师的。对Web3D而言,则需要懂3D美术,和懂WebGL的技术。

美术

美术方面,可以找一个懂UI设计的3D美术,短期内培养UI去学习3D美术,不太靠谱。如果资金充足可以专门招聘一个UI设计师和一个3D美术,一个做3D模型,一个做UI设计。

技术

对于产品展示而言需要的WebGL知识并不是非常深入,如果公司想节约成本,完全是可以培养前端去学习WebGL和threejs。

交互

为了更好的效果,一个产品可能不仅仅实现在线预览,还需要设置一些交互,这样用户可以在线远程体验产品。比如一个产品有多种颜色系列,那么可以通过UI按钮通过点击来改变模型颜色;比如一个教程需要开门动作,可以设置一个UI按钮进行开关操作。

加载进度条

模型相比普通的网页文件比较大,目前技术和硬件条件下,还需要一定加载等待时间,为了更新的用户体验,可以通过一个进度条组件可视化的显示模型加载进度。

产品三维模型在线预览相关推荐

  1. 产品三维模型在线展示

    产品在线展示案例预览 玉镯在线预览:http://www.yanhuangxueyuan.com/3D/yuzhuo.html 汽车在线预览:http://www.yanhuangxueyuan.co ...

  2. 上班第一天公司要你用Spring Boot 实现万能文件在线预览

    欢迎关注方志朋的博客,回复"666"获面试宝典 推荐一个用 Spring Boot 搭建的文档在线预览解决方案:kkFileView,一款成熟且开源的文件文档在线预览项目解决方案, ...

  3. Spring Boot 实现万能文件在线预览

    推荐一个用 Spring Boot 搭建的文档在线预览解决方案:kkFileView,一款成熟且开源的文件文档在线预览项目解决方案,对标业内付费产品有永中office.office365.idocv等 ...

  4. SpringBoot实现万能文件在线预览,已开源,真香!!!

    欢迎关注方志朋的博客,回复"666"获面试宝典 推荐一个用Spring Boot搭建的文档在线预览解决方案: kkFileView,一款成熟且开源的文件文档在线预览项目解决方案,对 ...

  5. Spring Boot如何实现在线预览?这个开源项目可以学习一下,支持99%常用文件!...

    Spring Boot上传文件,相信你一定会了.如果还不会的小伙伴,可以先看看之前的分享: Spring Boot 2.x基础教程:实现文件上传 Spring Boot 2.x基础教程:多文件的上传 ...

  6. 邮件附件在线预览——HTML Filter

    邮件附件在线预览,就是当收到邮件带有附件时,尤其是超大附件,可以不用下载邮件中的附件,通过web页面,以在线的方式读取其中的内容.此功能方便用户直接查看附件,节省下载的时间,同时也在很多时候极大的方便 ...

  7. 网页嵌入pdf、在线预览pdf工具及插件(转)

    摘要:在web开发时我们有时会需要在线预览PDF内容,在线嵌入pdf文件: 问题1:如何网页中嵌入PDF: 在网页中: 常用的几种PDF预览代码片段如下: 代码片段1: 1 <object ty ...

  8. Office在线预览及PDF在线预览的实现方式大集合

    一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免 ...

  9. 推荐几个手机网站在线预览测试工具

    随着移动互联网的爆发,移动端的布局成了大多数企业的刚需,而手机网站也慢慢成为一个营销企业的标配,包括百度.当当网在内的很多网站,移动端流量已经超过PC端流量,越来越的企业都在建立和完善自己的手机网站, ...

最新文章

  1. matlab实现盖尔圆,[理学]数值分析习题解答.doc
  2. 使用AXIS开发Web Service的示例
  3. 总结 Visual Studio 2019 发布以来 XAML 工具的改进
  4. python 当前时间的前一天_python中time、datetime模块的使用
  5. .NET平台下WEB应用程序的部署(安装数据库和自动配置,启动条件)
  6. 深度学习模型迁移到VisualC++ demo
  7. 基于java springboot框架的电子发票管理系统
  8. 8.cisco思科模拟器无线路由器设备实训练习
  9. python主函数调用子函数,实现excel数据写入
  10. LR-Web服务器和应用程序服务器区别(性能指标)
  11. 机器学习笔记 十七:基于Gini Importance、Permutation Importance、Boruta的随机森林模型重要性评估的比较
  12. Vue学习(学习打卡Day12)
  13. Iterative closest point (ICP) 算法
  14. UCI-HAR数据集CNN分类
  15. Excel|5个神技巧,提高你的数据分析效率~
  16. 分布式系统关注点——「负载均衡」到底该如何实施?
  17. java socket 读取文件_java中ServerSocket读取文件流不是分行读取
  18. SVN打标签方法及在此过程中的问题处理
  19. 华为云存储服务分享文件的方法
  20. java图片改变分辨率并保存

热门文章

  1. 高等几何——变换群与几何学8
  2. 人工蜂群算法python_人工蜂群算法简介与程序分析
  3. linux给两台主机设置虚拟ip,如何把linux配置成ip路由器
  4. 在虚拟机端搭建lamp和通过docker技术在云服务器搭建lamp环境
  5. 火狐浏览器修改默认搜索引擎和添加搜索引擎
  6. 最近很火的微信炸屎功能该怎么用?
  7. Selenium 爬取评论数据,就是这么简单!
  8. php表格增加一行数据,Excel表格如何增加一行
  9. Excel不够用,快试试这款企业报表工具
  10. Mysql数据库【触发器】