首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开发笔记(一百五十五)利用GL10描绘点、线、面

上一篇文章介绍了GL10的常用方法,包括如何设置颜色、如何指定坐标系、如何调整镜头参数、如何挪动观测方位等等,不过这些方法只是绘图前的准备工作,真正描绘点、线、面的制图工作并未涉及,那么本文就来谈谈如何利用GL10进行实际的三维绘图操作。 首先在三维坐标系中,每个点都有x、y、z三个方向上的坐标值,这样需要三个浮点数来表示一个点。然后一个面又至少由三个点组成,例如三个点可以构成一个三角形,而四个点可以构成一个四边形。于是OpenGL使用浮点数组表达一块平面区域的时候,数组大小=该面的顶点个数*3,也就是说,每三个浮点数用来指定一个顶点的x、y、z三轴坐标,所以总共需要三倍于顶点数量的浮点数才能表示这些顶点构成的平面。以下举个定义四边形的浮点数组例子:

03
您找到你想要的搜索结果了吗?
是的
没有找到

Android开发笔记(一百五十六)通过渲染纹理展示地球仪

上一篇文章介绍了如何使用GL10描绘三维物体的线段框架,后面给出的立方体和球体效果图,虽然看起来具备立体的轮廓,可离真实的物体还差得远。因为现实生活中的物体不仅仅有个骨架,还有花纹有光泽(比如衣服),所以若想让三维物体更加符合实际,就得给它加一层皮,也可以说是加一件衣服,这个皮毛大衣用OpenGL的术语称呼则为“纹理”。 三维物体的骨架是通过三维坐标系表示的,每个点都有x、y、z三个方向上的数值大小。那么三维物体的纹理也需要通过纹理坐标系来表达,但纹理坐标并非三维形式而是二维形式,这是怎么回事呢?打个比方,裁缝店给顾客制作一件衣服,首先要丈量顾客的身高、肩宽,以及胸围、腰围、臀围等三围,然后才能根据这些身体数据剪裁布料,这便是所谓的量体裁衣。那做衣服的一匹一匹布料又是什么样子的?当然是摊开来一大片一大片整齐的布匹了,明显这些布匹近似于二维的平面。但是最终的成品衣服穿在顾客身上却是三维的模样,显然中间必定有个从二维布匹到三维衣服的转换过程。转换工作的一系列计算,离不开前面测量得到的身高、肩宽、三围等等,其中身高和肩宽是直线的长度,而三围是曲线的长度。如果把三围的曲线剪断并拉直,就能得到直线形式的三围;同理,把衣服这个三维的曲面剪开,然后把它摊平,得到平面形式的衣服。于是,剪开并摊平后的平面衣服,即可与原始的平面布匹对应起来了。因此,纹理坐标的目的就是标记被摊平衣服的二维坐标,从而将同属二维坐标系的布匹一块一块贴上去。 在OpenGL体系之中,纹理坐标又称UV坐标,通过两个浮点数组合来设置一个点的纹理坐标(U,V),其中U表示横轴,V表示纵轴。纹理坐标不关心物体的三维位置,好比一个人不管走到哪里,不管做什么动作,身上穿的还是那件衣服。纹理坐标所要表述的,是衣服的一小片一小片分别来自于哪块布料,也就是说,每一小片衣服各是由什么材质构成。既可以是棉布材质,也可以是丝绸材质,还可以是尼龙材质,纹理只是衣服的脉络,材质才是最终贴上去的花色。 给三维物体穿衣服的动作,通常叫做给三维图形贴图,更专业地说叫纹理渲染。渲染纹理的过程主要由三大项操作组成,分别说明如下: 一、启用纹理的一系列开关设置,该系列又包括下述步骤: 1、渲染纹理肯定要启用纹理功能了,并且为了能够正确渲染,还需同时启用深度测试。启用深度测试的目的,是只绘制物体朝向观测者的正面,而不绘制物体的背面。上一篇文章的立方体和球体因为没有开启深度测试,所以背面的线段也都画了出来。启用纹理与深度测试的代码示例如下:

03

光伏逆变器建筑设计工具

最近有不同行业的客户咨询我司能不能提供一种解决方案,可以快速实现三维建筑效果,能快速响应市场需要,满足投标、交付、技术服务、厂房建设等需求。客户主要行业领域为新能源光伏逆变器铺设、房地产建筑、工厂厂房等三维建筑领域。 首先我们对他们的需求进行了分析,发现他们的共同需求是三维建筑,他们都想使用简单快速的编辑方式实现三维建筑,然后是业务需求。最终我们决定根据他们的需求,做一个简单的设计工具来实现三维建筑,然后再依次添加他们额外的业务需求。下边就简单的介绍下我们设计工具技术的尝试,如果你有更好的意见和思路可以一起沟通交流,共勉。

03

ICLR 2022 under review | 从零开始生成三维分子几何结构的自回归流模型

今天给大家介绍的是ICLR2022上underreview的文章《An autoregressive flow model for 3d molecular geometry generation from scratch》。虽然目前已经开发了多种方法来生成分子图,但从零开始生成分子的三维几何结构问题并没有得到充分的探索。在这项工作中,作者提出了G-SphreNet,一种生成三维分子几何的自回归流模型。G-SphereNet采用了一种一步步将原子放置在三维空间上灵活的顺序生成方案,它并不直接生成三维坐标,而是通过生成距离、角度和扭转角来确定原子的三维位置,从而确保不变性和等变性。此外,作者建议使用球形信息传递和注意力机制进行条件信息提取。实验结果表明,G-SphreNet在随机分子几何结构生成和目标分子发现任务方面优于以往的方法。

02

ICLR 2022 | 三维分子图的球形信息传递

今天给大家介绍的是ICLR 2022 Poster的文章《Spherical Message Passing for 3D Molecular Graphs》。作者在此工作中考虑了三维分子图的表示学习,其中每个原子与三维的空间位置相关联。这是一个尚未得到充分探索的研究领域,目前还缺乏一个有效的信息传递框架。在这项工作中,作者在球坐标系(SCS)中进行了分析,以完整地识别三维图结构。基于此观察,作者提出了球形信息传递(SMP)作为一种新的和强大的三维分子学习方案。SMP显著降低了训练的复杂性,使其能够在大规模分子上有效地执行。此外,SMP能够区分几乎所有的分子结构,而未覆盖的案例在实际中可能并不存在。基于有意义的基于物理的三维信息表示,作者进一步提出了用于三维分子学习的SphereNet。实验结果表明,在SphereNet中使用有意义的三维信息可以显著提高预测任务的性能。结果还证明了SpherNet在可靠性、效率方面的优势。

01
领券