- 博客(15)
- 收藏
- 关注
原创 [Unity3D] 动态立方体贴图系统
本章展示的动态立方体贴图系统使用了一个非常简单的脚本来阐述这个概念,但它可以扩展成一个完整的系统,每个房间都有多个立方体贴图。该系统可以在运行时为我们自动生成所有的立方体贴图,这对于无法负担完全实时反射系统的游戏来说非常有用。
2025-03-10 08:58:08
1339
原创 第四章:反射-Reflecting Your World《Unity Shaders and Effets Cookbook》
本章全面的介绍了反射技术。它可以让 Shader 在感官上具备视觉冲击力的一项关键技术,它是在 Shader 表面上模拟环境反射的一个过程,在这个过程中使用了周围世界(环境)信息,并且让 Shader 去反射这些世界(环境)的信息。在本章的最后一个小节中,我们将介绍如何创建一个简单的系统来在多个位置生成立方体贴图,并且角色在环境中移动时,使用该数据在这些反射贴图之间进行交换,这会为我们提供一个半实时反射系统。使用立方体贴图来实现反射的概念实际上是比较简单的,而且它为你的着色器效果提供了一个非常强大的工具。
2025-03-09 22:13:13
970
2
原创 第三章:镜面反射让你的游戏闪光 - Specular Model《Unity Shaders and Effets Cookbook》
《Unity Shaders and Effets Cookbook》第三章,共有6个小节,分别讲解了6种不同的镜面反射,非常全面的介绍了镜面反射的种类以及表现效果,并配有完整代码。这6种镜面反射分别是:1.使用Unity3D内置的镜面反射、2.创建 Phong 镜面反射、3. 创建 BlinnPhong 镜面反射、4. 使用高光贴图来实现镜面反射、5. 金属与软镜面反射的比较、6. 创建各向异性镜面反射。每一种镜面反射都是从“准备工作”开始到“如何实现“ 再到 ”实现原理“ 以及会添加“补充内容”等。
2025-01-29 23:28:20
1056
原创 Lerp函数-详解
Lerp函数通常接收三个参数:起始值a,结束值b,以及插值因子t。语法为 lerp(a, b, t) ,其中 a 是起始值, b 是结束值, t 是插值因子,取值范围通常在 0 到 1 之间。在一维空间中,已知两个数值 a 和 b ,以及介于0到1之间的系数 ,线性插值公式为:lerp(a, b, t) = a + (b - a) * t。基于线性插值公式 lerp(a, b, t)=a + (b - a) * t , a 和 b 是起始与结束值, t 为0到1的插值因子。
2025-01-09 14:36:28
1276
原创 第二章:着色器纹理特效的应用-Using Textures for Effects《Unity Shaders and Effets Cookbook》
《Unity Shaders and Effets Cookbook》第二章:Using Textures for Effects;本章主要介绍了:1.如何通过修改UV坐标来实现纹理滚动效果 2.如何实现精灵表动画 3.使用混合纹理来实现地表效果、4.法线贴图、5.在Unity编辑器中创建程序纹理 6.实现Photoshop的色阶特效。内容通俗易懂,每一节都附带步骤分解与完整代码。并提到了常函数的使用,以及如何优化等技术点。这本书可以让你学习到如何使用着色器和屏幕特效让你的Unity工程拥有震撼的渲染画面。
2025-01-08 11:52:54
2339
原创 Dot函数-详解
本文主要介绍Dot函数在Shader中的使用方法、计算原理、实际的应用场景以及代码示例。同时也会对Dot函数做了一些延申。在Shader中,Dot函数主要用于计算两个向量的点积,它是一个非常常用的向量点乘函数,Dot可以计算两个向量之间的夹角、投影、投影比等等。掌握了Dot函数的使用方法和计算原理,可以为Shader的编写和优化提供很大的帮助。Dot的计算广泛应用于各种图形渲染场景,如游戏开发中的角色、场景光照模型计算,以及实现阴影、高光等效果。判断两个向量的相关性时,点积结果的正负和大小能反映向量的方向关
2024-12-26 14:28:55
977
原创 第一章:漫反射着色器-Diffuse Shading《Unity Shaders and Effets Cookbook》
《Unity Shaders and Effets Cookbook》这本书可以让你学习到如何使用着色器和屏幕特效让你的Unity工程拥有震撼的渲染画面—— 作者Kenny LammersUnity。包含了:创建自定义漫反射光照模型、创建半兰伯特照明模型、创建一个渐变纹理来控制漫反射着色 、使用2D渐变纹理模拟BRDF。早期,我们是需要一遍又一遍的写重复性的计算,这样会产生大量的代码。Unity内置的所有光照功能都是很不错的,但你会发现内置的光照不会满足你所有的需求,你会想要创建更多的可自定义的光照模型。
2024-12-25 18:28:19
2101
原创 UnityShader 基础光照模型-完整版(The Basic Lighting Model)
本文分别介绍了两种漫反射光照模型(兰伯特和半兰伯特)、两种镜面反射模型(Phong和Blinn-phong)自发光、环境光等理论基础和在unity中的计算方式。详细介绍了这些光照在逐顶点光照模型中和逐像素光照模型中的完整计算。附带完整代码和最终渲染图。解析逐顶点光照模型和逐像素光照模型的区别。一、基础光照模型(在基础光照模型中,物体的表面颜色是自发光、环境光、漫反射、镜面反射的总和。即surfaceColor = emissive + ambient + diffuse + specula。展示了实现过程。
2024-12-16 23:17:08
2155
原创 职业生涯中遇到或写过最大的Bug是什么?
“ 在程序的世界里,bug 就像隐藏在暗处的小怪兽,时不时跳出来捣乱。而职业生涯中,总有那么一个或几个 bug 让我们刻骨铭心。下边是早期很容易犯的错误,这些其实算是一些比较小的bug,可它们却让我记忆犹新。就是因为它们让我实现了找bug2小时,改bug2秒钟。。。
2024-12-13 23:57:09
535
原创 如何打造优质的技术文档(Technical Documentation)
一份好的技术文档的宗旨是不仅让自己对技术有深刻的理解,同时让别人也能够读明白自己写的内容。目的不同表达的方式也不同。如果是前两者,那么需要考虑到其他人的理解程度以及工作经验的不一致,所以在编写技术文档的整个过程中需要有意识的站在你所针对的人群的角度去编写是很重要的。不同的技术领域,技术文档的整体构架是不一样的。如果你的逻辑非常清晰且强大,只是碍于文字表述上比较弱项,可以去增强自己的图文合并的方式来表达自己想讲的内容。比如去描述一个技术点时,它的理论基础、实现原理、额外的延申、相关的软件或插件的介绍等等。
2024-12-12 23:55:50
909
原创 HDR Light Studio(3D渲染软件 )
支持加,减,乘,过,钳,颜色,饱和度和色调混合模式。它是一个连接最受欢迎三维应用程序的照明产品渲染渲染工具,允许快速准确、为3d模型布光照明,可通过点击模型,影响与光,或通过添加灯HDR预览。HDR Light Studio是一款非常出色的3D艺术照明工具,提供了一种快速精确的方式来照亮3D模型,照明设计被保存为可用于任何渲染器的高动态范围,照明过程变得快速、精准。就像在真实的拍摄照片上一样,添加了美丽的灯光,使您的主题成为节目的明星。基于图像的光源带来高水平的真实感,细微的细节和反射中出现的瑕疵。
2024-12-11 07:59:24
1219
原创 Unity-shader 如何采样立方体贴图(Cube Map采样)
一、立方体贴图一、立方体贴图立方体贴图即Cube Map1、基础理论立方体纹理(Cubemap)是环境映射(Environment Mapping)一种实现方法。环境映射可以模拟物体周围的环境,而使用了环境映射的物体可以模拟反射周围环境的效果。比如金属、瓷器、塑料等带有反射特征的材质。立方体贴图一共包含了6张图,这些图像对应了立方体的6个面。立方体的每个面表示沿着世界空间下的轴向(上、下、左、右、前、后)观察所得的图像。
2024-12-10 01:27:01
1466
2
原创 UnityShader中Properties里材质属性的声明及特征(Material Property)
RGBA采样值分别为:“white”(RGBA:1,1,1,1)、“black”(RGBA:0,0,0,1)、“gray”(RGBA:0.5,0.5,0.5,1)、“bump”(RGBA:0.5,0.5,1,0.5)、"red"(RGBA:1,0,0,1)。如果您的颜色具有其他属性 (property) 名称,但您希望 Unity 将这个颜色视为主色,请使用此属性 (attribute)。按类型划分的材质属性声明语法,类型名称和默认值的语法取决于属性的类型。这是一个字符串,引号里面的名称会显示在材质球上。
2024-12-08 20:38:50
1220
原创 UnityShader 如何采样及创建2D纹理数组 (Texture2DArray)
一、纹理数组2D纹理数组的元素也称为切片或图层,它们可以用于实现自定义地形渲染系统或其他特殊效果。并不是所有平台都支持2D纹理数组,因为纹理数组需要受到底层图形 API 和 GPU 的支持。纹理数组的导入1、将源纹理导入unity ,在项目视图选择生成的纹理资源。unity在Inspector中显示纹理导入设置。2、在 Inspector 中,将 Texture Shape 设置为 2D Array。Unity 显示 Columns 和 Rows 属性。
2024-12-08 18:42:56
912
原创 UnityShader 顶点着色器中TRANSFER_VERTEX_TO_FRAGMENT(o) 报错 或者TRANSFER_SHADOW(o) 报错
Unity默认创建的shader里, 在结构体v2f中,传输的剪裁空间命名一般都是vertex。如果需要传输灯光投影的计算,我们就需要把它改成pos。//命名错误 不能使用。//这里的命名需要改成。
2024-12-08 18:41:32
321
VS Code安装包(VSCodeUserSetup-x64)
2024-12-25
Valve白皮书 - 《军团要塞2》光照和阴影的实现
2024-12-24
Dynamic Bone(Unity动态骨骼插件 / Unity物理动画模拟插件)
2024-12-11
HDR Light Studio(3D渲染软件) V6.1.0 英文安装版
2024-12-09
cmftStudio - cubemap filtering tool (立方体贴图过滤工具)
2024-12-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人