当前位置: 首页 > news >正文

制作营销网站公司DW做网站下拉列表怎么做

制作营销网站公司,DW做网站下拉列表怎么做,线上咨询预约网站建设方案,最常用的网页制作工具导读 与手机导航不同#xff0c;高德地图的车机版#xff08;AMAP AUTO#xff09;直接面对各大车厂和众多设备商。这些B端用户采用的硬件参数参差不齐#xff0c;提出的业务需求涉及到渲染中诸多复杂技术的应用#xff0c;这对渲染性能提出了极高的要求。 最初车机版沿…导读 与手机导航不同高德地图的车机版AMAP AUTO直接面对各大车厂和众多设备商。这些B端用户采用的硬件参数参差不齐提出的业务需求涉及到渲染中诸多复杂技术的应用这对渲染性能提出了极高的要求。 最初车机版沿用手机版的当前屏渲染模式每一帧都需要实时的将地图元素渲染出来。但在业务实践过程中我们发现在多屏渲染和多视图渲染场景下CPU负载急剧增高。以鹰眼图场景为例在鹰眼图场景下地图存在多视图渲染的状态一张是主地图一张是鹰眼小地图因此渲染引擎同时渲染了两个地图实例对象下图右下角即为鹰眼图 鹰眼图绘制后平均帧率下降了2帧如下图所示 针对上述情况除了对渲染细节、批次和纹理等进行常规优化外我们还需要寻找一种全局性的技术优化手段大幅度提升引擎的渲染性能。为此我们深入地研究了离屏渲染技术并结合导航业务提出了一种基于离屏渲染技术对特定地图的视图进行性能优化的方法。 优化原理 在OpenGL的渲染管线中几何数据和纹理通过一系列变换和测试最终被渲染成屏幕上的二维像素。那些用于存储颜色值和测试结果的二维数组被称为帧缓冲区。当我们创建了一个供OpenGL绘制用的窗体后窗体系统会生成一个默认的帧缓冲区这个帧缓冲区完全由窗体系统管理且仅用于将渲染后的图像输出到窗口的显示区域。我们也可以使用在当前屏幕缓冲区以外开辟一个缓冲区进渲染操作。前者即为当前屏渲染后者为离屏渲染。 与当前屏渲染相比离屏渲染 在变化的场景下因为离屏渲染需要创建一个新的缓冲区且需要多次切换上下文环境所以代价很高在稳定的场景下离屏渲染可以采用一张纹理进行渲染所以性能较当前屏渲染有较大提升。 从上述对比可以看出在稳定场景下使用离屏渲染的优势较大。但因为地图状态随时都在变化所以地图渲染通常处于前台动态渲染状态。那么有没有相对稳定的场景呢答案是肯定的我们将地图的状态分为沉浸态和非沉浸态。顾名思义在地图处于变化状态的称为非沉浸态进入稳定状态称为沉浸态。 进入沉浸态的地图为我们使用离屏渲染提供了条件。经过统计地图处于前台状态的场景下沉浸态时间基本上和非沉浸态时间相当这样我们采用一张纹理即可将处于非沉浸态场景下的地图渲染出来大大降低了系统开销。在鹰眼图矢量路口大图等特定的视图场景下地图基本上均处于沉浸态。所以这些视图下采用离屏渲染技术进行优化取得的收益将是巨大的。 工程实践 将以上的技术优化原理代入到实际的导航应用中流程如下 离屏渲染通常使用FBO实现。FBO就是Frame Buffer Object它可以让我们的渲染不渲染到屏幕上而是渲染到离屏Buffer中。但是通常的离屏渲染FBO对象不具备抗锯齿能力因此开启了全屏抗锯齿能力的OpenGL应用程序如果采用离屏渲染FBO对象进行离屏渲染会出现锯齿现象。而在非沉浸态地图的状态下是开启全屏抗锯齿能力的所以我们必须使用具备抗锯齿能力的离屏渲染技术来进行地图渲染技术优化。 抗锯齿离屏渲染技术简述 本节以iOS系统为例对抗锯齿能力的离屏渲染技术进行简述。iOS系统对OpenGL进行了深度定制其抗锯齿能力就是建立在FBO基础上的。如下图所示IOS基于对抗锯齿的帧缓存FBO对象进行操作从而达到全屏抗锯齿的目的 接下来具体介绍抗锯齿FBO的创建步骤 创建FBO并绑定 GLuint sampleFramebuffer; glGenFramebuffers(1, sampleFramebuffer); glBindFramebuffer(GL_FRAMEBUFFER, sampleFramebuffer);创建一个颜色帧缓冲区在显存中开辟一个具有抗锯齿能力的对象并将颜色缓冲区挂载到开辟的对象上。创建一个深度模版渲染缓冲区开辟具有抗锯齿能力的显存空间并和帧缓冲区进行绑定 GLuint sampleColorRenderbuffer, sampleDepthRenderbuffer; glGenRenderbuffers(1, sampleColorRenderbuffer); glBindRenderbuffer(GL_RENDERBUFFER, sampleColorRenderbuffer); glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_RGBA8_OES, width, height); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, sampleColorRenderbuffer);glGenRenderbuffers(1, sampleDepthRenderbuffer); glBindRenderbuffer(GL_RENDERBUFFER, sampleDepthRenderbuffer); glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_DEPTH_COMPONENT16, width, height); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, sampleDepthRenderbuffer);测试创建的环境是否正确避免如显存空间不足等造成创建失败的可能 GLenum status glCheckFramebufferStatus(GL_FRAMEBUFFER) ; if(status ! GL_FRAMEBUFFER_COMPLETE) {return false; }至此一个具备抗锯齿能力的离屏FBO已创建好下面将应用这个FBO步骤如下 先清除抗锯齿帧缓存空间重的内容 glBindFramebuffer(GL_FRAMEBUFFER, sampleFramebuffer); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, framebufferWidth, framebufferHeight);开始进行一系列的渲染函数操作比如准备顶点数据纹理数据VBOIBO矩阵状态等并执行一系列的渲染指令选择指定的shader及其传输数据状态FBO不是一个具备直接渲染能力的帧缓存空间在执行完2的操作之后需要将抗锯齿的FBO内渲染的内容通过合并每个像素转换到屏幕渲染所在的帧缓存空间去。原理如下图所示 代码如下 glBindFramebuffer(GL_DRAW_FRAMEBUFFER_APPLE, resolveFrameBuffer); glResolveMultisampleFramebufferAPPLE(); glBindFramebuffer(GL_READ_FRAMEBUFFER_APPLE, sampleFramebuffer);以上操作完成后需要进行一些Discard步骤, 将一些原先在当前帧缓存中的内容忽略掉 glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer); [context presentRenderbuffer:GL_RENDERBUFFER];Android系统基本思路一致需要采用gles3.0接口提供的抗锯齿能力来进行渲染在此不做展开。 优化对比 优化前的鹰眼图渲染耗时火焰图如下 优化后的鹰眼图渲染耗时火焰图如下 从前后对比图可以看出鹰眼图渲染的耗时几乎已经消失不见。 从系统的渲染帧率上进一步得到验证。从下图可以看出帧率已经恢复到与不显示鹰眼图的情况相当 需要注意的是全屏抗锯齿损耗资源除了增加额外的显存空间抗锯齿过程中也会产生一定的耗时。所以在取得收益的同时也需要衡量其产生的代价需要具体问题具体分析。在本案例中如对比结果所示采用抗锯齿离屏渲染技术的优化产生的收益远远高于付出的代价。 原文链接 本文为云栖社区原创内容未经允许不得转载。
http://www.huolong8.cn/news/249145/

相关文章:

  • 江苏做网站公司宝安中心医院口腔科电话
  • 网站开发语言对比资源网站推广
  • 搜索各大网站微信公众号做电影网站
  • 怎么做网站背景建站如何挣钱
  • 网站ip屏蔽惠州网络推广费用
  • 图片生成网站百度搜索引擎的网址是多少
  • 购物网站建设怎么样网站建设 h5
  • 信用中国门户网站建设方案二级网站建设基本情况
  • 家具网站素材兰州自媒体公司有哪些
  • 百度站长平台推出网站移动化大赛wordpress建电影网站
  • 做淘宝客导购网站网站大连
  • 如何对自己做的php网站加密建筑工程网格化管理实施方案2024最新版
  • 深圳网站建设深圳网络公司北京外包seo公司
  • 四川省建设厅网站官网个人登录个人兼职做网站
  • 福建省建设厅网站劳保核定卡老酒街 wordpress
  • 带后台自适应网站模版十六局门户网
  • 湖北建站方案wordpress 悬浮
  • 深圳高端网站建设招聘ppt素材免费网站
  • 深圳市罗湖区住房和建设局网站创建网站域名
  • 中职教材 网站建设网站推广托管公司
  • 东莞网站案例营销网站降权怎么做
  • 1688代加工官方网站企信查
  • siteground建站教程购买域名要多少钱
  • 厦门网站建设2015wordpress 主题中心
  • wordpress多站版备案号被取消 没有重新备案网站会被关闭吗
  • 网站开发图答辩ppt模板
  • 懒人免费建站模板中文网页设计模板免费下载
  • 如何进行网站建设维恩图在线制作网站
  • 常熟建设网站wordpress aliyun-oss
  • 网站建设有什么用厦门最早做网站的公司