1前言 ​本文主要介绍Filament的材质系统,官方介绍详见→FilamentMaterialsGuide。材质系统中会涉及到一些空间和变换的知识点,可以参考:【Unity3D】空间和变换、【Unity3D】Shader常量、变量、结构体、函数、【OpenGLES】MVP矩阵变换、【OpenGLES】透视变换原理。 ​需要注意的是,Unity世界空间是左手坐标系,OpenGL和Filament的世界空间是右手坐标系,Filament的世界空间坐标轴如下。 红+X,绿+Y,蓝+Z ​读者如果对Filament不太熟悉,请回顾以下内容。 Filament环境搭建 绘制三角形 绘制矩形 绘制圆形...

  mzU7yC38vjmG   2024年03月03日   68   0   0 计算机图形学

1前言 ​光照元素主要有环境光(ambient)、漫反射光(diffuse)、镜面反射光(specular),基础的光照模型主要有兰伯特(Lambert)光照模型、冯氏(Phong)光照模型和改进的冯氏(BlinnPhong)光照模型。 ​Lambert光照模型只包含漫反射光的计算,Phong光照模型和BlinnPhong光照模型都包含环境光、漫反射光、镜面反射光的计算,两者的区别在与镜面反射光的计算,Phong光照模型根据反向量和观察向量计算镜面反射光,BlinnPhong光照模型根据半向量和法向量计算镜面反射光。 ​BlinnPhong光照模型中环境光、漫反射光、镜面反射光的计算如下。 ...

  mzU7yC38vjmG   2024年03月02日   42   0   0 计算机图形学

1前言 ​本文通过一个立方体贴图的例子,讲解三维纹理贴图(子网格贴图)的应用,案例中使用6张不同的图片给立方体贴图,图片如下。 ​读者如果对Filament不太熟悉,请回顾以下内容。 Filament环境搭建 绘制三角形 绘制矩形 绘制圆形 绘制立方体 纹理贴图 2立方体贴图 ​本文项目结构如下,完整代码资源→Filament立方体贴图(6张图)。 2.1基础类 ​为方便读者将注意力聚焦在Filament的输入上,轻松配置复杂的环境依赖逻辑,笔者仿照OpenGLES的写法,抽出了FLSurfaceView、BaseModel、Mesh、MaterialUtils和TextureUtil...

  mzU7yC38vjmG   2024年03月01日   46   0   0 计算机图形学

1前言 ​Filament环境搭建中介绍了Filament的Windows和Android环境搭建,绘制三角形中介绍了绘制纯色和彩色三角形,本文将使用Filament绘制纯色和彩色矩形。 2绘制矩形 ​本文项目结构如下,完整代码资源→Filament绘制矩形。 2.1自定义基类 ​为方便读者将注意力聚焦在Filament的输入上,轻松配置复杂的环境依赖逻辑,笔者仿照OpenGLES的写法,抽出了FLSurfaceView和BaseModel类。FLSurfaceView与GLSurfaceView的功能类似,承载了渲染环境配置;BaseModel中提供了一些VertexBuffer、Inde...

  mzU7yC38vjmG   2024年02月29日   52   0   0 计算机图形学

1前言 ​本文主要介绍使用Filament实现纹理贴图,读者如果对Filament不太熟悉,请回顾以下内容。 Filament环境搭建 绘制三角形 绘制矩形 绘制圆形 绘制立方体 ​Filament纹理坐标的x、y轴正方向分别朝右和朝上,其y轴正方向朝向与OpenGLES和libGDX相反(详见【OpenGLES】纹理贴图、【libGDX】Mesh纹理贴图),如下。 2纹理贴图 ​本文项目结构如下,完整代码资源→Filament纹理贴图。 2.1自定义基类 ​为方便读者将注意力聚焦在Filament的输入上,轻松配置复杂的环境依赖逻辑,笔者仿照OpenGLES的写法,抽出了FLSurf...

  mzU7yC38vjmG   2024年02月29日   39   0   0 计算机图形学

1前言 ​Filament是一个实时物理渲染引擎,用于Android、iOS、Linux、macOS、Windows和WebGL平台。该引擎旨在提供高效、实时的图形渲染,并被设计为在Android平台上尽可能小而尽可能高效。Filament支持基于物理的渲染(PBR),这意味着它可以模拟光线、材质和阴影等物理效果,以创建更逼真的图形场景。该引擎的设计注重性能和资源效率,使其成为移动设备和其他平台上渲染复杂图形的理想选择。 ​Filament官方资料如下。 Filament仓库:https://github.com/google/filament Filament中PBR原理及实现:https...

  mzU7yC38vjmG   2024年02月27日   48   0   0 计算机图形学

1前言 ​本文主要介绍使用libGDX绘制立方体,并实现手动触摸事件控制立方体旋转。 ​为方便控制触摸旋转,并提高渲染性能,我们通过改变相机的位置和姿态实现立方体旋转效果。 ​读者如果对libGDX不太熟悉,请回顾以下内容。 使用Mesh绘制三角形 使用Mesh绘制矩形 使用Mesh绘制圆形 使用Mesh绘制立方体 Mesh立方体贴图(6张图) 2立方体手动旋转 ​本节将使用Mesh、ShaderProgram、Shader、InputAdapter实现立方体手动旋转,OpenGLES的实现见博客→立方体手动旋转,本节完整代码资源见→libGDX立方体手动旋转。 ​DesktopLaunc...

  mzU7yC38vjmG   2024年02月26日   72   0   0 计算机图形学

1前言 ​本文通过一个立方体贴图的例子,讲解三维纹理贴图的应用,案例中使用6张不同的图片给立方体贴图,图片如下。 ​读者如果对libGDX不太熟悉,请回顾以下内容。 使用Mesh绘制三角形 使用Mesh绘制矩形 使用Mesh绘制圆形 使用Mesh绘制立方体 Mesh纹理贴图 2立方体贴图 ​本节将使用Mesh、ShaderProgram、Shader实现立方体贴图,OpenGLES的实现见博客→立方体贴图(6张图),本节完整代码资源见→libGDXMesh立方体贴图(6张图)。 ​DesktopLauncher.java packagecom.zhyan8.game; importco...

  mzU7yC38vjmG   2024年02月24日   37   0   0 计算机图形学

1前言 ​本文主要介绍Unity打包发布Androidapk流程、基于AndroidJavaObject(或AndroidJavaClass)实现Unity调用Java代码、基于UnityPlayer实现Java调用Unity代码,官方介绍见→Android。 ​Unity项目C中获取平台的代码如下,需要引入UnityEngine命名空间。 RuntimePlatformplatform=Application.platform; ​RuntimePlatform是枚举类型,主要平台如下。 publicenumRuntimePlatform{ OSXEditor=0,//editoronma...

  mzU7yC38vjmG   2024年02月21日   50   0   0 游戏开发

1前言 最近有个需求,需要使用JS快速读取外部大数据文件(60w条记录的表)。笔者尝试过使用JS读取Excel文件,但是跑了十几分钟仍未出结果,后来笔者尝试将原数据保存为TXT文件,再从TXT文件中读取数据,只需几秒钟即可读取完毕。在此分享一下,也留着以后备用。 2案例 为方便快速理解,笔者挑选了一个数据量小、业务逻辑简单的案例:从TXT文件中读取数据,并按照原列表格式显示。 ​工作空间: ​待读取的TXT文件数据: read.html <!DOCTYPEhtml> <html> <head> <metahttp-equiv="Content-Ty...

  mzU7yC38vjmG   2023年11月01日   104   0   0 JavaScript

1需求实现 ​粒子系统ParticleSystem中介绍了粒子初始化、粒子发射、发射器形状、渲染器、碰撞、子发射器、拖尾等粒子系统的基本用法,本节将基于粒子系统实现烟花特效。 ​实现需求如下(资源见→Unity3D烟花特效预设体文件): 粒子发射阶段,只有一个粒子(记为Spindle粒子系统),其速度递减,颜色随机,有拖尾特效; 粒子上升阶段,在Spindle周围有环绕的粒子(记为Around粒子系统),其速度随机,颜色随机,方向随机; 爆炸阶段,粒子向四周爆炸(记为Blast粒子系统),其速度随机,颜色随机,有拖尾特效。 ​综上,需要设计3个粒子系统(在Hierarchy窗口右键,依次...

  mzU7yC38vjmG   2023年11月01日   146   0   0 计算机图形学
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~