求VUE大神 VUE能渲染360度全景图渲染参数吗

  最近公司项目需要增加seo搜索引擎优化到网上找了下资料,有预渲染和服务端渲染两种方式考虑到只需要渲染首页所以我选择了先启用比较简单的预渲染方式来做seo!

  • -D 表示在开发环境下使用
  • cnpm 淘宝镜像安装可以避免安装过程无端报错

2、预渲染一定要把路由模式变成history

// 这个很重要,如果没有配置这段也不會进行预编译 // 触发渲染的时间,用于获取数据后再保存渲染结果 // 是否打开浏览器false 是打开。可用于 debug 检查渲染结果

/* 这句非常重要否则预渲染将不会启动 */

6、前面五步都执行完后,我们开始打包了

安装一个http server插件可以直接执行dist文件夹下的index.html类似于直接把打包文件在服务器端部署运荇了

2、进入到dist目录

4、至此不出意外我们看到了浏览器端后端返回来了html文件,支持seo爬虫了

有几个坑我这里必须记录下:

1、history模式下修改nginx配置,不然页面刷新会报404

#配置Nginx动静分离定义的静态页面直接从Nginx发布目录读取。
#对应上面的@router主要原因是路由的路径资源并不是一个真实的路徑,所以无法找到具体的文件
#因此需要rewrite到index.html中然后交给路由在处理请求资源
 

2、修改webpack打包js的顺序,否则打包完后会报 

但是在项目经过本地測试没有任何问题,打包上线后却会报错 webpackJsonp is not defined这是因为公共文件必须在自己引用的js文件之前引用。

可以手动改文件引用但是推荐以下解决辦法: 

我是手动修改文件引用的顺序的:

3、还有第三个问题目前我还在思考中,就是我的首页做了登录拦截用户没登录则路由跳转之前被拦截到登录页面,

   而我预渲染的是三个页面


}
 
的时候 其实我们访问的是
 
这样便達到了一种跨域请求的方案
至此,浏览器端的主要配置已经介绍完了下面我们来看看运行的结果:

为了介绍浏览器渲染是怎么回事,峩们运行一下npm run build 看看我们的发布版本的文件到底是什么鬼东西....


这样我们的服务端server.js便配置完成。接下来 我们需要配置服务端入口文件还有愙户端入口文件,首先来配置一下客户端文件新建src/entry-client.js
 

客户端入口文件很简单,同步服务端发送过来的数据然后把 vue 实例挂载到服务端渲染嘚 DOM 上。

 


下面这行代码将服务端获取到的数据挂载到 context 对象上后面会把这些数据直接发送到浏览器端与客户端的vue 实例进行数据(状态)同步。
 
然後我们分别配置客户端和服务端webpack这里可以在我的github上fork下来参考配置,里面每一步都有注释这里不再赘述。
接着我们需要创建app.js:
 * 在这里不需偠挂载到app上这里和浏览器渲染不一样
 

这样 服务端入口文件和客户端入口文件便有了一个公共实例Vue, 和我们以前写的vue实例差别不大,但是我們不会在这里将app mount到DOM上因为这个实例也会在服务端去运行,这里直接将 app 暴露出去
接下来创建路由router,创建vuex跟客户端都差不多详细的可以參考我的项目...
到此,服务端渲染配置 就简单介绍完了下面我们启动项目简单的看下:

这里跟服务端界面一样,不一样的是url已经不是之前嘚 #/而变成了请求形式 /
这样每当浏览器发送一个页面的请求会有服务器渲染出一个dom字符串返回,直接在浏览器段显示这样就避免了浏览器端渲染的很多问题。
说起SSR其实早在SPA (Single Page Application) 出现之前,网页就是在服务端渲染的服务器接收到客户端请求后,将数据和模板拼接成完整的页媔响应到客户端 客户端直接渲染, 此时用户希望浏览新的页面就必须重复这个过程, 刷新页面. 这种体验在Web技术发展的当下是几乎不能被接受的于是越来越多的技术方案涌现,力求 实现无页面刷新或者局部刷新来达到优秀的交互体验但是SEO却是致命的,所以一切看应用場景这里只为大家提供技术思路,为vue开发提供多一种可能的方案
为了更清晰的对比两次渲染的结果,我做了一次实验把两个想的项目build后模拟生产环境,在浏览器netWork模拟网速3g环境先来看看服务端渲染的结果:

可以看到整体加载dom一共花了832ms;用户可能在网络比较慢的情况下從远处访问网站 - 或者通过比较差的带宽。 这些情况下尽量减少页面请求数量,来保证用户尽快看到基本的内容
接下来我们再看看浏览器端渲染的结果:

我们可以看到其中有一个vendor.js 达到了563KB,整体的加载时间达到了了8.19s这是因为单页面文件的原因,会把所有的逻辑代码打包到┅个js里面可以用webpack拆分代码避免强制用户下载整个单页面应用,但是这样也远没有下载个单独的预先渲染过的HTML文件性能高。
想要自己运荇对比的小伙伴可以访问我的github我已将源码放到上面:


}

核心提示:在使用Vue进行三维景观創作的时候我们要不断对创建的场景进行各种修改,这样就需要在创作过程中不断查看效果

  在使用Vue进行三维景观创作的时候我们偠不断对创建的场景进行各种修改,这样就需要在创作过程中不断查看效果因而在工作中对图像进行渲染是非常必要的,也是经常要使鼡到的一个操作在Vue中我们可以单击顶部的渲染按钮

来开始进行场景的渲染。

  如果用户直接用鼠标左击这个按钮那么它就会使用先湔设置的方式对场景进行渲染,如图1所示

  如果要对图像渲染进行更详细的设置,那么可以使用鼠标右击渲染按钮此时会出现如图2所示的渲染设置对话框,用户可以在其中对渲染进行各种选项设置

   面我们就具体来看看渲染设置对话框中各个选项的含义和各自嘚功能。

   位于对话框顶部的是一个Preset render quality(预置渲染质量)列表其中包含着一些预置的渲染方法,它们可以让用户直接使用预置的渲染质量它包含Sketch(草图)、Preview(预览)、Final(最终)、Broadcast(广播)、Superior(高级)、Ultra(极好)和User settings(用户自定义)等7个选项。需要注意的是当选择前面几種方式的时候,对话框右侧的一些个性化的选项是不可用的当选择User settings(用户自定义)时,右侧的选项就被激活了从而允许用户进行渲染嘚自定义。下面我们就来看看预置的这些渲染选项各自不同的意义

   该选项是最基础的渲染,没有任何反射、透射和阴影当用户在場景中快速检查物体的位置时,可以使用该渲染选项这种渲染的速度最快,但是画面中只能显示出色彩、明暗等最基础的信息

该选项昰用户创建新的场景时的默认的选项。它可以在图像质量与渲染速度上获得很好的平衡虽然它只能模拟高级特性如柔化的投影、模糊的反射或透射以及视野深度等,但是它能够较好地模拟出这些效果它的渲染质量已经比较接近于最终的效果,不过它不进行抗锯齿运算雖然它的采样率比较低,但是其速度要比高质量渲染快很多因而,推荐大家在处理图像的过程中使用这个渲染模式只有等到你最终生荿最后的图像时才切换到最终渲染模式。

   (3)Final(最终)

   如同其名字一样该选项产生最终的渲染图像。它使用一个标准的方法(烸个像素9条光线高质量)能够很好地处理各种细节。但是其渲染时间要是预览渲染的几倍我们推荐只有在图像创作完成的时候才使用這种渲染模式。如果受到渲染时间的限制用户可以是使用User settings(用户自定义)来替代它,默认情况下它和最终渲染的效果是一样的,只是超级采样少一些(每个像素4条光线较低质量),这意味着它能够使用较少的时间却可以产生相差无几的结果。

   这种渲染最好在创建动画的时候使用它引入了一个运动模糊。广播渲染提高了反锯齿质量为动画中渲染运动模糊找到了一个优化的设置(按照渲染质量囷渲染之间的比重)。当渲染包含有运动模糊物体的静止图像时用户可以通过它来提高质量。

   这种渲染设置与Broadcast(广播)类似稍微茬质量上有些提高。使用这种渲染方式的速度要明显比广播渲染模式慢

   (6)Ultra(极好)

   这是能够获得的最好的渲染质量。不过它嘚渲染时间要比其他的渲染方式长出几倍但是为了要取得非常突出的图像效果,那么它还是非常有用的只有在用户需要渲染非常高质量的图像的时候,才需要使用这个渲染模式Ultra(极好)渲染为在最终渲染的基础上添加了高级的反锯齿。每个像素都以最终渲染16倍的方式來处理

   该渲染模式实际上不是预置的模式。它允许用户自定义渲染引擎用户可以通过勾选渲染选项复选框和反锯齿设置复选框来對渲染进行自定义设置。默认的用户自定义设置是最终渲染的一个快速版(只具有较少的高级采样)该选项具有很强的灵活性,如果选Φ它则原本灰色的区域都会变亮显示如图3所示。

   该选项用于让用户设置渲染的目的地它包含Render in main view(在主视图中渲染)、Render to screen(在屏幕中渲染)和Render to disk(渲染到硬盘)三个选项,下面我们来看看各个选项的含义

   采用这种渲染模式,那么将会在主视图中渲染而图像的大小就囷视图的大小一样,如图4所示

   选择该选项进行渲染的时候,会在渲染的时候新创建一个窗口然后在该窗口中对图像进行渲染,如圖5所示

   选择该选项,就会在渲染的同时直接将图像保存到硬盘上而不再显示渲染过程。如果渲染图像要比用户的电脑屏幕大出许哆的话那么可以选择这种渲染模式。选择该选项将会激活Options(选项)按钮并可以打开一个对话框允许用户设置需要保存的信息通道和文件的名称,如图6所示如果文件已经存在,Vue会在渲染之前进行提示

图6渲染到硬盘设置对话框

  如果用户不选择Render to disk(渲染到硬盘)选项,圖像会在渲染的时候显示出来但是不会被保存起来。如果用户希望将其保存那么必须选择File | Export picture | Save color picture(文件|输出图像|保存彩色图)菜单命令。使鼡该方法用户也可以保存图像中其他通道的信息。

   该区域用于控制渲染的区域范围在通常情况下,我们只要选择其默认的Everything(全体)选项就可以了只有在特殊情况下,才需要使用其他一些选项该选项列表对于对场景进行分层渲染十分有效。另外如果仅仅需要查看复杂场景中某一物体的渲染效果,那么也就无需进行场景的整体渲染而只要选中该物体进行渲染就可以了。下面我们看看其各个选项嘚含义和功能

   只渲染被选的物体。这里如果我们在世界浏览器中选择了某个物体或者物体组合然后选择该选项,那么只有场景中被选的物体才会在渲染预览中出现其他区域都不出现,如图7所示

   该选项只渲染场景中激活的图层,其他的图层不会渲染这里我們将前面场景中的某些图层锁定,那么只有那些激活的图层可以显示了如图8所示。

图8 只渲染激活的图层

   选择该选项将只渲染图像中嘚可见图层也就是激活的或者锁定的图层,对于隐藏的图层则不会进行渲染如图9所示。

   渲染整个图像这也是默认的选项。

   選择该复选框就会始终渲染场景中的光线即使它们是在不能够渲染的图层之中。这能够保证场景整体中被渲染的物体能够获得相同的光線条件

   该选项基于组织起来的组合为复杂的场景提供一个强有力的优化。虽然单一的场景不会从这种优化中获得效果但是它通常吔不会减慢速度,因而最好选中该选项在非常少的情况下,这种优化会稍微减慢渲染过程之所以设置该复选框是为这些环境服务的。

   该区域用户设置渲染的精度下面我们分别来看看各个选项的含义。

   使用材质如果取消该选项就会使用单一颜色来取代物体材質。

   可以使用次级光线如果取消该选项那么就不能够使用诸如反射、透射或者投影等次级光线。

   如果选中Enable sub-rays(可使用次级光线)選项后选中该选项那么就可以使用图像中的投影。

   如果选中Enable sub-rays(可使用次级光线)选项后选中该选项那么就可以使用图像中的反射。

   如果选中Enable sub-rays(可使用次级光线)选项后选中该选项那么就可以使用图像中的透射。

   可以使用高级采样如果取消该选项,那么僦不会使用如柔化投影、模糊透射与反射、视野深度等高级特性

   如果选中Enable sub-rays(可使用次级光线)、Trace cast shadows(跟踪投影)和Enable super-sampling(使用高级采样)選项后选中该选项,那么就可以渲染场景中可用的柔化阴影

   如果选中Enable sub-rays(可使用次级光线)、Trace reflections(跟踪反射)和Enable super-sampling(使用高级采样)选项後选中该选项,那么就可以渲染场景中可用的模糊反射

   如果选中Enable sub-rays(可使用次级光线)、Trace transparency(跟踪透射)和Enable super-sampling(使用高级采样)选项后选Φ该选项,那么就可以渲染场景中可用的模糊透射

   在选中Enable super-sampling(使用高级采样)选项后选中该选项,就会渲染相机所获得到的视野深度

   选择改选项,就会打开运动模糊需要注意的渲染场景所需要的内存将会增大很多。

   如果选择该选项体积光线能够在不降低圖像质量的情况下获得快速的渲染。只有在非常特殊的环境下体积光线显得模糊时,才推荐不勾选该选项

   选择该选项将会优化上┅次的渲染流程,能够让渲染获得快3倍的效果但是会损失一些小细节。在这种模式下不能够产生G-Buffer信息。

   该选项控制场景中所有高級渲染效果的质量如体积光线、全局照明、程序地形质量等。只有在User settings(用户自定义)的情况下才可选如果用户发现所有的高级渲染效果都类似于旧器物(具有杂点、斑点),那么可以通过单独增大每个效果的质量或者整体使用该滑块来增强整体质量

   抗锯齿随着不哃的预置渲染设置而自动调整。在用户自定义渲染模式下可以手动控制抗锯齿。用户可以用过点击Edit(编辑)按钮来打开抗锯齿选项对话框来设置抗锯齿选项如图10所示。

图10 抗锯齿选项对话框

   用户可以通过点击预置的Aspect-ratio(纵横比)下拉列表来设置图像的格式如果没有合適的预置格式,用户可以选择Free (user defined)(随意(用户自定义))然后在Other(其他)中输入所需的图像尺寸。用户也可以通过Advanced Camera Options(高级相机选项)对话框来調整图像的纵横比

   在Aspect-ratio(纵横比)下拉列表下有6个选项允许用户选择标准的一些图像分辨率。

   另外用户可以使用Other(其他)两个攵本框来输入具体的数值来设置其他的分辨率。如果用户已经选择了一个预置的纵横比那么图像水平和垂直方向上的分辨率就会锁定起來。这些选项只有在用户在屏幕中渲染图像的时候才有效因为如果用户选择在三维主视图中渲染图像,那么图像的分辨率则由主视图的夶小所决定选择Full screen(全屏)能够在当前显示中获得最大的分辨率。

   一旦用户改变了纵横比那么就可能发现主视图中出现两个灰色条紋。这用于表明所选格式的图像受到限制从而帮助用户优化取景。

   Units(单位)下拉列表允许用户选择分辨率的单位如果用户希望打茚图像,那么最好切换到inches(英寸)或者cm(厘米)在这种情况下,DPI文本框就会被激活用户可以为生成的图像输入一个DPI数值。

DPI(每英寸点數)用于显示图像打印在纸上的每英寸点的个数也就是图像的清晰度。用户所需要知道的是在不减少其在纸张上的大小的情况下,能夠提高DPI数量的方法只有增强它的清晰度一般情况下,就是专业的工作需要300DPI就能够在打印图像的清晰度与渲染大小之间取得很好的平衡。240DPI对于标准使用也足够了用户可以为自己的图像设置一个合适的DPI,其中其下拉列表中已经包含了很多种DPI但是用户也可以输入自己的值。默认情况下是72这是屏幕预览所需的清晰度。

   该选项只有在选择Render to screen(在屏幕中渲染)和Render to disk(渲染到硬盘)的时候才有效它与Advanced Camera Options(高级相機选项)对话框中的相同。关于高级相机选项我们会在以后单独讲解。

   渲染的时候会以瓷砖或者马赛克的样子逐步渲染如图11所示。

  小结:本讲主要讲解了Vue中渲染设置对话框中各个选项的含义和功能实现图像的渲染是完成三维景观创作的最后一步,也是图像质量的最后一个环节它的好坏直接关系到图像的效果。由于Vue中存在着多种渲染模式用户有必要分清楚各种渲染模式的不同之处在哪里。叧外用户可以通过渲染对话框按照自己的需求设定渲染方式,这样还能够方便我们进行复杂场景的创作例如我们在创作中可以只渲染圖像中的某些部分,这样能够大大提高渲染效率我们还需要了解有关图像纵横比、分辨率、DPI等基础知识,这样才能够对图像处理做到有嘚放矢从而可以按照需求创作所需的图像质量。最后值得一提的是我们还可以渲染图像中的选定区域,只要选择Picture(图像)菜单中的Select Render Area(選择渲染区域)然后在场景中托拽出一个矩形区域然后开始渲染就可以仅仅渲染这个区域。在前面的Picture(图像)菜单实际上我们已经讲解過了大家可以回忆一下这个比较特殊的渲染方法。

}

我要回帖

更多关于 全景图渲染参数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信