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

网站是否开启gzip深圳做企业网站的公司推荐

网站是否开启gzip,深圳做企业网站的公司推荐,江西省赣州市事业单位招聘信息,潍坊网站建设 中公为了让广大开发者 更深入地了解 百度地图开放平台的 技术能力 轻松掌握满满的 技术干货 更加简单地接入 位置服务 我们特别推出了 “位置服务#xff08;LBS#xff09;开发微课堂” 系列技术案例 第五期的主题是 通过openGL ES轻松实现 建筑物渲染及动画 对于…为了让广大开发者 更深入地了解 百度地图开放平台的 技术能力 轻松掌握满满的 技术干货 更加简单地接入 位置服务 我们特别推出了 “位置服务LBS开发微课堂” 系列技术案例 第五期的主题是 通过openGL ES轻松实现 建筑物渲染及动画 对于智能穿戴设备的开发者来说在亲子守护这类应用场景下精确展示儿童当前的位置信息尤为重要。特别是在复杂的建筑物中需要能够详尽地指示出儿童所在的建筑物及具体位置。 那么如何能够在地图上结合定位技术贴合楼块轮廓对定位所在的楼块进行自定义纹理展示并实现当前所在楼栋内的楼层变化的动画效果呢 今天我们将详细介绍如何在移动端使用OpenGL ES绘制一个n面棱柱并探讨纹理贴图、侧面索引的原理及楼层动画的实现过程。 通过代码的方式帮助开发者更好地理解地图SDK自定义建筑物渲染的整个过程就让我们一起来学习一下吧 01 绘制建筑物 1.1 定义顶点与索引 绘制建筑物本质上是绘制n面棱柱体。n面棱柱的顶点数据包括底面顶点、顶面顶点和侧面顶点。 底面和顶面是n边形侧面由底面和顶面的对应顶点连接而成。 核心代码示例 // 示例绘制一个六面棱柱即长方体GLfloat vertices[] {    // 底面顶点    -0.5f, -0.5f, -0.5f,    0.5f, -0.5f, -0.5f,    0.5f, -0.5f,  0.5f,    -0.5f, -0.5f,  0.5f,    // 顶面顶点    -0.5f,  0.5f, -0.5f,    0.5f,  0.5f, -0.5f,    0.5f,  0.5f,  0.5f,    -0.5f,  0.5f,  0.5f}; 索引数据用于指定顶点的连接顺序形成棱柱的各个面。 // 示例索引数据GLushort indices[] {    // 底面    0, 1, 2, 2, 3, 0,    // 顶面    4, 5, 6, 6, 7, 4,    // 侧面    0, 1, 5, 5, 4, 0,    1, 2, 6, 6, 5, 1,    2, 3, 7, 7, 6, 2,    3, 0, 4, 4, 7, 3}; 索引数组 索引数组定义了顶点的连接顺序从而形成了棱柱的各个面。 侧面生成 通过连接底面和顶面对应的顶点生成棱柱的侧面。索引数组中的每个侧面由六个顶点组成两个三角形。 1.2 顶点着色器和片元着色器 顶点着色器负责处理顶点数据将其转换为屏幕坐标。 片元着色器负责为每个像素着色。 const char* vertexShaderSource R(attribute vec4 vPosition;uniform mat4 uModelViewProjectionMatrix;void main() {    gl_Position uModelViewProjectionMatrix * vPosition;}); const char* fragmentShaderSource R(precision mediump float;uniform vec4 vColor;void main() {    gl_FragColor vColor;});02 纹理贴图 2.1 纹理坐标 纹理贴图是将二维图像映射到三维模型表面的过程。因此需要定义纹理坐标并加载纹理图像。 纹理坐标 纹理坐标是一个二维坐标系统范围为[0, 1]。它定义了如何将纹理图像映射到三维模型的表面上。 // 纹理坐标示例GLfloat textureCoords[] {    0.0f, 0.0f,    1.0f, 0.0f,    1.0f, 1.0f,    0.0f, 1.0f,    // 顶面纹理坐标重复上述过程}; 2.2 纹理绘制 在绘制函数中我们需要绑定纹理、设置着色器参数、传递顶点数据和索引数据然后调用glDrawElements进行绘制。 纹理环绕 当纹理坐标超出 [0, 1] 范围时OpenGL提供了多种处理方式如重复GL_REPEAT、镜像重复GL_MIRRORED_REPEAT、约束到边缘GL_CLAMP_TO_EDGE等。 纹理过滤 纹理过滤用于处理纹理在放大或缩小时的像素处理。常用的过滤方式有邻近过滤GL_NEAREST和线性过滤GL_LINEAR。 // 加载纹理图像示例GLuint textureId;glGenTextures(1, textureId);glBindTexture(GL_TEXTURE_2D, textureId);glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, textureWidth, textureHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureData);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);绘制 void draw() {    glUseProgram(program);// 设置顶点属性位置    glEnableVertexAttribArray(positionAttribLocation);    glVertexAttribPointer(positionAttribLocation, 3, GL_FLOAT, GL_FALSE, 0, vertices);// 设置纹理坐标属性位置    glEnableVertexAttribArray(textureAttribLocation);    glVertexAttribPointer(textureAttribLocation, 2, GL_FLOAT, GL_FALSE, 0, textureCoords);// 绑定纹理    glBindTexture(GL_TEXTURE_2D, textureId);// 设置着色器中的矩阵参数示例    glUniformMatrix4fv(modelViewProjectionMatrixLocation, 1, GL_FALSE, modelViewProjectionMatrix);// 绘制棱柱    glDrawElements(GL_TRIANGLES, sizeof(indices) / sizeof(GLushort), GL_UNSIGNED_SHORT, indices);glDisableVertexAttribArray(positionAttribLocation);    glDisableVertexAttribArray(textureAttribLocation);} 03 楼层动画 实现楼层z轴非线性动画通过使用顶点着色器Vertex Shader来动态修改顶点位置实现。 这种方法可以减少 CPU 到 GPU 的数据传输提高性能特别是在顶点数据较多的情况下。 3.1 定义楼层的顶点着色器 定义一个顶点着色器其中包含一个时间变量和缓动函数用于计算当前的 Z 坐标偏移。​​​​​​​ // Vertex Shaderattribute vec3 aPosition; // 顶点位置uniform float uTime; // 动画时间从外部传入uniform float uHeight; // 最大高度 // 缓动函数// 开始和结束时速度较慢中间加速float easeInOutCubic(float t) {    return t 0.5 ? 4.0 * t * t * t : (t - 1.0) * (2.0 * t - 2.0) * (2.0 * t - 2.0) 1.0;} void main() {    float t easeInOutCubic(uTime);    float z uHeight * t; // 计算当前高度    vec3 transformedPosition vec3(aPosition.xy, aPosition.z z); // 更新 Z 坐标    gl_Position vec4(transformedPosition, 1.0);} 缓动函数 缓动函数Easing Functions是在动画和运动图形中常用的一种技术用于创建更加平滑和自然的动画效果。主要用于控制动画的速度变化使得动画不是以恒定速度进行而是可以加速或减速或者两者结合。 3.2 更新时间和高度​​​​​​​ // 更新时间高度并传递到着色器float time fmod(currentTime, animationDuration) / animationDuration; // 计算归一化时间glUniform1f(glGetUniformLocation(shaderProgram, uTime), time);glUniform1f(glGetUniformLocation(shaderProgram, uHeight), buildingHeight); 3.3 渲染循环​​​​​​​ void render() {    // 更新时间    updateDeltaTime();    // 设置时间和高度    glUniform1f(glGetUniformLocation(shaderProgram, uTime), time);    glUniform1f(glGetUniformLocation(shaderProgram, uHeight), buildingHeight);    // 绘制楼层    drawFloorBuilding();} 04 效果展示 怎么样你学会了吗登录百度地图开放平台官网轻松实现建筑物的渲染及动画效果 查看路径 开发者频道开发文档Android地图SDK开发指南在地图上绘制绘制3D建筑物https://lbsyun.baidu.com/faq/api?titleandroidsdk/guide/render-map/3dbuilding 开发者频道开发文档iOS地图SDK开发指南在地图上绘制绘制3D建筑物https://lbsyun.baidu.com/faq/api?titleiossdk/guide/map-render/3dBuilding ·END· 你还想了解哪些技术内容 快来评论区留言告诉我们吧
http://www.hkea.cn/news/14463888/

相关文章:

  • app与网站的区别是什么福田公司怎么样
  • 教育网站设计方案什么是互联网企业
  • 有没有网站找人帮忙做图网站建设推介会发言稿
  • 天津微信网站开发购买友情链接网站
  • iis6.1添加网站网站的站点地图设计
  • 设计参考图哪个网站好中国100强排名企业名单
  • 网站开发待遇怎么样广告设计培训目的
  • 网站主页图片设计页面跳转的方式有哪些
  • 网站设计 seowordpress会员充值
  • 铁汉生态建设有限公司网站wordpress黑糖主题破解
  • 网站推广需要数据整改吗开发公司交房归物业公司交给物业公司
  • 企业网站建设成都美团初期是怎么建网站
  • 数商云商城中山seo
  • 织梦网站怎么上传视频教程网站如何在百度做排名
  • 永康网站定制怎么查询网站开发时间
  • 苏州网站关键词优化推广seo有哪些优化工具
  • 网站做项目qq是根据哪款软件开发的
  • 骨干专业群建设任务书网站太原网站排名外包
  • 福州网站开发哪家比较好网站即时到账要怎么做
  • 做网站好赚钱吗wordpress如何换图片
  • 广水网站设计怒火一刀代理平台
  • 做视频网站软件好用的海报设计网站
  • 工程网站模板制作教程医院关于建设官方网站的请示
  • 能看所有网站的浏览器企业官方网站的作用
  • 南阳做网站优化的公司视频怎样连接到wordpress
  • 企业站网页版的游戏
  • 百度移动网站检测高水平的郑州网站建设
  • asp程序网站后台发布产品的时候前台怎么不显示产品名称生成图片链接的网站
  • 株洲网站建设网站建设网站建设在作用是什么原因
  • 昌平区事业单位公共知识培训网站六年级做网站的软件