我们知道,眼睛从不同角度和位置去看物体时,看到的画面是不一样的。比如看到这一面就看不到另一面;比如会透视——拍过照的都知道,要显脸小得后拉。 而在3D世界中,我们对一个物体进行操作时,摄像机看到的画面也会随着物体位置的改变而变化。大多数情况下,这是没有问题的。 但是,如果物体相对屏幕很小,而且需要任意拖拽到屏幕上的不同位置,那么就无法保证物体总是呈现设计好的那一面。 针对这种需求,我整理下面这一套
转载
2024-09-07 12:49:45
142阅读
透明是游戏中经常要使用的一种效果。在实时渲染中要实现透明效果,通常会在渲染模型时控制它的透明通道。当开启透明混合后,当一个物体被渲染到屏幕上时,每个片元出了颜色值和深度值之外,它还有另一个属性——透明度。当透明度为1时,表示该像素是完全不透明的,而当其为0时,则表示该像素完全不会显示。在Unity中,我们通常使用两种方法来实现透明效果:第一种是使用透明度测试,这种方法其实无法得到真正的半透明效果;
Unity-透明物体渲染方式对比汇总总结对比1、ZTest On能保证透明物体和不透明物体间的渲染正确2、ZWrite On 能保证不同透明物体间穿插渲染正确3、Cull Back能避免部分背面的渲染异常问题(透明物体自身出现不正常穿插)4、预写深度解决透明物体自身出现不正常穿插问题5、双pass渲染解决背面渲染问题6、三pass渲染解决双pass渲染自身瑕疵@MoYaun 透明效果一直是渲染的难
转载
2024-04-26 05:49:42
258阅读
Unity半透明特效原理讲解(为什么半透明设置渲染顺序和深度写入这么重要写在前面实验场景实验1:红(不透明)+蓝(不透明)+默认渲染顺序(先渲染红Cube)实验2:红(不透明)+蓝(不透明+优先渲染)实验3:红(透明+关闭深度写入)+蓝(不透明)+默认渲染顺序(先渲染蓝Cube)实验4:红(透明+关闭深度写入+优先渲染)+蓝(不透明)实验5:红(透明+开启深度写入)+蓝(不透明)+默认渲染顺序(
转载
2024-05-24 23:44:13
908阅读
Unity动态昼夜变化Lightmap+天空盒 最近一直在对旧项目的场景进行重新烘焙,于是顺便做了个昼夜变化的效果。没有用实时光,而是用了Lightmap烘焙+天空盒。 上面的视频,前面一段是4个时间点的瞬间切换,后面一段是4个时间点的过渡切换效果。 简单分享一下思路: 1、需要的东西:场景烘焙lightmap,天空盒。2、需要多少个时间点,就需要烘焙多少套lightmap和多少套天空盒。
转载
2024-05-25 20:25:41
1169阅读
Shader和Material的关系 Shader能够设置游戏物体的颜色或者能够通过材质来配置颜色。实际上,一个shader能够让许多物体看起来像是完全不同的物质。 Shader和材质作为一个整体工作:Shader定义了表面看起来可以像哪些东西,材质让表面真正看起来是哪一个具体的东西。修正紫红色的材质&nb
转载
2024-05-15 21:11:19
818阅读
对于很多刚开始接触渲染模块的同学来说,不知道透明贴图的制作原理,以及如何渲染出好的效果,今天结合案例给大家讲解一下,先打开我们需要的素材,如下图: 在制作之前我们先给树叶一个普通的blinn材质,然后接下来打开下材质编辑器,打开材质属性面板,如下图: 因为灯光都是已经设置好的,接下来我们先做个简单的渲染,看下效果,随后再把树叶的贴图连接到colo
转载
2024-03-06 09:27:08
649阅读
透明是游戏中经常使用的一种效果。Unity中通常使用两种方法来实现透明效果:第一种是使用透明度测试(Alpha Test),这种方法其实无法得到半透明效果;另一种是透明度混合(Alpha Blending)。渲染顺序当场景中包含很多模型时,如ynci果所有模型都是不透明(opaque)的物体,那么由于强大的深度缓冲(depth buffer)的存在不考虑渲染顺序也可以得到正确的结果,但
转载
2024-05-04 17:08:49
135阅读
前提知识深度测试对某个片元进行深度测试: 比较该片元已经存在于深度缓冲区中的深度值,如果当前片元的深度值比深度缓存中的深度值大(距离摄像机远),说明该片元是被遮挡的,无需参与合并,也就是说这个片元没有通过深度测试。什么是合并: 合并决定了通过深度测试的片元的颜色如何写入到颜色缓存中,如果是不透明物体,直接覆盖掉原来的颜色即可,如果是透明物体,就要和原本颜色缓存中的颜色进行混合后写入。Unity 的
转载
2024-03-27 00:55:53
145阅读
这个教程涵盖了各种各样的关于透明纹理贴图的共用,i.e.RGBA 纹理贴图包含了一个A(alpha)部分 是纹理的不透明的值。它联合了shader的代码关于“Textured sphere”部分的概念,介绍了 “cutaways”和”Transparency”。如果你没有读过这篇教程,这将会是一个很好的机会来阅读。 丢弃透明片段(Di
转载
2024-02-29 14:19:35
155阅读
一. 粒子特效粒子特效一般指密集点阵效果,它并不是canvas独有的,这个名词更多出现在AE,cocos2d,Unity相关的教程中,并且提供了方便的编辑插件让使用者可以轻松地做出例如烟火,流星,光晕等等动态变化的效果,看起来非常酷炫。如果你接触过Three.js,会发现三维空间的点阵效果看起来更生动。粒子特效的本质还是一个逐帧动画,所以我们仍然可以使用上一节中提到的动画编程范式来实现它。本节的教
转载
2024-10-14 09:37:01
64阅读
前言本次文章将编写unity如何根据时间实现昼夜系统,也因此,本文章需要依托于前面文章的时间系统功能。 同样,这里只把重要的部分编写出来,具体的实现过程请到b站搜索本人的2d游戏开发-unity实现系列视频教程。功能说明本次的昼夜系统依托于时间系统,前面我已经将24分钟设置为游戏的一天,那么这次就根据不同的时间显示不同的亮度. 本次的不同时间亮度设置如下:21:00-05:00 保持最暗
转载
2024-05-30 09:51:49
536阅读
因为有不少人都问过我压缩格式的问题,今天飞哥又重新提醒了一次。整理一下发个贴,以供大家查阅和讨论。各种纹理格式,大家参照下U3D MANUAL里面的具体描述介绍,这是官方的东西。但我觉得有一部内容是错的,例如占用内存大小。http://docs.unity3d.com/Manual/class-TextureImporter.html基本知识点:DXT格式是Nvidia Tegra提供的,ETC是
转载
2024-08-30 20:56:00
35阅读
更新:URP支持透明,版本2023.1.11(URP15),时间:2023.10.20*Unity采用内置渲染管线,版本2020.3.0 参考网上资料:链接Unity新版需要关闭选项:Edit——ProjectSettings——Player——ResolutionandPresentation——UseDXGIFlipModelSwapchainforD3D11 这个参考上面链接没有按照上面链接
转载
2024-03-25 10:24:58
827阅读
片元函数的fixed4类型的返回值的第4位即为阿尔法值,0代表完全不显示(透明),1代表完全显示。中间的数值代表半透明。但只修改这个值是不能直接修改透明度的,因为还要对队列等进行修改。本文介绍透明度测试与透明度混合,前者只能制作全透明效果,后者可制作半透明效果。透明度测试/全透明效果:如果要将纹理贴图的一部分显示为不透明,另一部分显示为完全透明,可以使用这个方法。方法很简单,在片元函数中加入如下内
转载
2024-03-07 21:18:00
264阅读
引言在做手机游戏时可能会遇到这些问题:UI 同学天天抱怨 iOS 上一些透明贴图压缩后模糊不堪一些古早的 Android 手机上同样的贴图吃内存超过其他手机数倍,游戏经常闪退这篇文章给出了一种手机游戏项目中通用的解决方案:分离贴图 alpha 通道,及其基于 Unity 引擎的实现过程和细节。其中思路主要来自于 https://zhuanlan.zhihu.com/p/32674470,本文是
转载
2024-08-26 23:32:21
71阅读
文章目录前言一、混合模式 1.说明2.常用公式二、问题总结参考前言本文介绍unity渲染中的透明度混合,和透明度混合相关问题。一、混合公式1.说明unity上,Blend Src Dst,混合方程: C¯result=C¯source∗Fsource+C¯destination∗Fdestination C¯source:源颜色向量。这是来自纹理的本来的颜色向量。C¯des
转载
2024-03-20 13:40:42
590阅读
透明效果透明是游戏中经常要使用的一种效果。在实时渲染中要实现透明兄啊过,通常会在渲染模型时控制它的透明通道(Alpha Channel)。当开启透明混合后,当一个物体被渲染到屏幕上时,每个片元除了颜色值和深度值之外,它还有另一个属性——透明度。当透明度为1时,表示该像素是完全不透明的,而当其为0时,则表示该像素完全不会显示。在Unity种,我们通常使用两种方法来实现透明效果:第一种是使用透明度测试
转载
2024-03-18 09:49:59
941阅读
最近在做项目的过程中遇到这样的一个需求:玩家可以在游戏过程中进行实时存档,在存档过程中会保存当前游戏进度,同时会截取当前游戏画面并加载到游戏存档界面中。当下一次进入游戏的时候,将读取本地存档图片并加载到游戏界面中。这在单机游戏中是特别常见的一种功能,这里主要有两个关键点。首先是截取游戏画面,这个问题大家可以在《Unity3D游戏开发之截屏保存精彩瞬间》这篇文章中找到答案。其次是从本地加载图片,因为
转载
2024-03-13 22:20:42
239阅读
写在前面
为了在Shaders中创建反射的效果,我们将首先开始学习如何创建我们自己的Cubemaps。当然,你可以在网上找到许多已经做好的Cubemaps,但是你很快就会想,怎么制作自己的Cubemaps,因为网上那些是不能反射你自己游戏中的场景的。 制作你自己的Cubemaps是创建更真实的反射效果的关键。我们将会学习几个可以在Unity editor中直接使用的方法。另外,