
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
在立方体贴图(6张图)中,绘制了一个立方体,贴了 6 张图,本文的魔方案例,将实现绘制 27个立方体,贴 162 张图。贴图图片如下:说明:inside.png 为魔方内部色块,用粉红色块代替白色块是为了凸显白色线框。读者如果对 OpenGL ES 不太熟悉,请回顾以下内容:绘制三角形绘制立方体MVP矩阵变换纹理贴图立方体贴图(6张图)

1 前言本文主要介绍使用 OpenGL ES 绘制立方体,读者如果对 OpenGL ES 不太熟悉,请回顾以下内容:绘制三角形绘制彩色三角形绘制正方形绘制圆形在绘制立方体的过程中,主要用到了 MVP (Model View Projection)矩阵变换。Model:模型变换,施加在模型上的空间变换,包含旋转变换(rotateM)、平移变换(translateM)、对称变换(transposeM)

固定管线着色器通过命令方式实现光照和贴图等效果,表面着色器通过给 SurfaceOutput 赋值实现光照、贴图和法线贴图等效果,它们都不用关注光照算法是如何实现的,只需要传值就行。顶点和片段着色器给用户提供了更灵活的用法,但使用也更困难。另外,顶点着色器可以通过控制 MVP 矩阵变换实现对模型位置和姿态的控制。

1 前言本文通过一个立方体贴图的例子,讲解三维纹理贴图的应用,案例中使用 6 张不同的图片给立方体贴图。本文涉及到的知识点主要包含:三维绘图、MVP 矩阵变换、纹理贴图,读者如果对 OpenGL ES 不太熟悉,请回顾以下内容:绘制立方体MVP矩阵变换纹理贴图项目目录如下:2 案例MainActivity.javapackage com.zhyan8.texture3d;import androi

MVP矩阵变换中主要介绍了模型变换(平移、旋转、对称、缩放)和观测变换基本原理,本文将介绍透视变换的基本原理。如下图,近平面和远平面间棱台称为视锥体,表示可见区域范围,视锥体以外的空间将被裁剪丢弃,视锥体内的模型通过透视变换投影到近平面上,近平面上得到的平面图形就是屏幕上要显示的模型的图形。近平面的高度为 2(区间为 [-1, 1],为方便计算,已归一化),宽度也为 2。当相机位置和模型位置已固定

空间坐标系建立后,空间中任何一个点都对应一个向量,设空间中一向量为 [a, b, c]',为方便采用统一的格式描述线性变换,将三维空间中的向量 [a, b, c]' 映射到四维空间中的向量 [a, b, c, 1]',同时,线性变换采用 4x4 的矩阵描述。所有向量 [a, b, c, 1]' 生成的空间仍然是一个三维空间,它是四维空间中的一个三维子空间。对与某些线性变换(如平移变换),若使用 4
布局组件主要有水平布局(HorizontalLayoutGroup)、垂直布局(VerticalLayoutGroup)、网格布局(GridLayoutGroup),用于约束子控件的布局方式,这些布局都有以下共同属性Padding边距,父控件向内收缩的空间,子控件只能在此收缩空间内布局,避免子控件太贴边Spacing间距,子控件向外延申的空间,避免子控件间挨得太紧凑子控件对齐方式。...

协程的 select 是一种用于异步操作的选择器,它允许同时等待多个挂起函数的结果,并在其中一个完成时执行相应的操作。能够被 select 的事件都是 SelectClause,在 select.kt 中有定义,如下。

Lambda 表达式中,不能直接使用 return 语句返回,需要结合标签一起使用,否则会编译报错(内联函数除外,详见 →。尾随 Lambda 表达式中,可以使用外层函数的名字作为 return 的标签名,也可以在 {} 前面自定义标签名。说明:当外层函数的最后一个参数不是函数类型,前面的某个参数是函数类型时,必须将 {} 写到 () 里面。说明:当外层函数的最后一个参数是函数类型时,可以将 {}

序列(Sequence)是 Kotlin 中为方便操作集合及其元素而定制的接口,是一个延迟获取数据的集合,只有需要元素时才会生产元素。在处理大量数据时,序列可以显著地提升性能。Sequence 类似 Java 中的 Stream,详见 →。Sequence 有中间操作和终端操作,如下。中间操作终端操作。








