OpenGL 的正背面剔除  在绘制 3D 场景的时候,我们通常会把对于观察者而言不可见的部分做一个丢弃的操作以此来提高性能。这种情况被称为隐藏面消除,也被称为消隐。画家算法  画家算法也叫作优先填充,它是一种物体空间和图像空间的消隐算法。当将三维场景投影到二维平面的时候,需要确定哪些多边形是可见的,哪些是不可见的,在物体空间中预先汁算面的可见性优先级,再在图像空间中生成消隐图。具体的操作如下,先            
                
         
            
            
            
            在图形渲染中有一个很大的敌人就是渲染不必要的多边形,比如处于背面的三角面片。拿起一本数,无论你怎么看最多也只能看到书的三个面,有的时候只能看到书的一个面。看不到的面我们完全可以把它剔除掉,这门武功就叫做背面剔除。如果是软光栅化,背面剔除通常在世界空间或相机空间中做,算法很简单如果平面的法线和视向量(平面上的一个点到视点的向量)的夹角小于90度那么这个三角面就是正面,否则是背面。这里的背面剔除只和平            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-31 16:33:24
                            
                                135阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、基本概念介绍面剔除就是指检查一个面相对于摄像机也就是观察者的朝向是顺时针还是逆时针,以三角形举例,如果一个三角形我们从正面看它是顺时针,那么背面就是逆时针,以此来区分正面和被面。在unity里默认的就是背面剔除,比如一个平面,添加了标准材质后它只有正面可以看到,背面则观察不到;(以立方体为例,立方体的每个面都是有正面和背面的,而背面是观察不到的);对于这两个例子,听起来会比较难懂,接下来会做详            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-09 13:05:19
                            
                                181阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            剔除(Culling)  剔除是一种通过避免渲染背对观察者的几何体面来提高性能的优化措施。所有几何体都包含正面和反面。剔除基于大多数对象都是封闭的事实;如果你有一个立方体,你不会看到背离你的那一面(总是只有一面在你的前方),因此我们不需要绘制出背面。因此也被称做背面剔除。一言以蔽之,所谓剔除,就是被挡住或视角以外的我们看不到的物体,因为它们无关紧要,所以我们就不去绘制,以节省资源,提高场景的运行效            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-21 22:06:54
                            
                                729阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            版本:2019.1ShaderLab: Culling & Depth Testing剔除与深度测试 剔除是一种针对面向相机镜头内的不渲染多边形的优化(针对镜头做剔除的优化)。所有的多边形都有正面与背面。Culling剔除可以将许多不需要渲染的对应剔除掉;如果你有一个Cube立方体,你将永远看不到没有朝向你的面(背面)(因为总是朝着你的面都是正面),所以我们不需要绘制那些背面。因为术语叫:            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-09 02:14:58
                            
                                186阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            上一篇编写shader需要具备的知识储备,在这篇博客中如果有迷茫的可以去这里看一看// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToCli            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-20 01:20:58
                            
                                29阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录目的:理解RenderType的作用 ,当初学习《Shader入门精要》时写有如下总结使用替换的着色器渲染(官方解释)一、 Camera.SetReplacementShader实战二、Camera.SetReplacementShader总结三、Camera.RenderWithShader实战四、Camera.RenderWithShader总结目的:理解RenderType的作用 ,当初            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-12 22:58:43
                            
                                0阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            遮挡剔除1.遮挡剔除简述2.遮挡剔除使用方法动态遮挡剔除 1.遮挡剔除简述遮挡剔除的作用:可以降低被渲染对象的个数,降低渲染时间。 原理:避免对因为完全被其他物体挡住而不可见的物体的渲染。2.遮挡剔除使用方法Unity主要是用于静态遮挡剔除,但可以对动态物体进行遮挡剔除。 使用遮挡剔除主要有:1.开启Occlusion Culling窗口,选中物体若为被遮挡物则在Static中设置为Occlud            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-26 13:04:35
                            
                                174阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            原理游戏中的元素非常多,但是摄像机能看到的内容是有限的,并且有些元素会被另外一些元素挡住,例如城墙一类的,城墙后面的元素就会被它挡住。如果不进行处理的话,这些元素也会带来一定的开销,此时可以使用遮挡剔除技术来剔除掉这些被挡住的元素,只动态保留摄像机能看到的内容。遮挡剔除遮挡与被遮挡属性描述Occluder Static在遮挡剔除系统中,将游戏对象标记为静态遮挡物Occludee Static在遮挡            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-27 13:15:56
                            
                                98阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            首先要先从网上下载InstantOC组件(网上资源很多的不用跟我要)那么介绍一下这个组件是干什么用的,为什么要用它,有什么好处在游戏中我们看到的物体,是如何呈现给我们的呢?如图:渲染管线 CPU干得事情第一步 游戏:其实就是CPU来判断视锥以内,所能看到的物体都需要渲染第二步 图形API:它是要看你发布的平台,不一样平台所需要的图形API也就不一样,比如Windows平台就需要DX,手机            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-29 16:46:04
                            
                                131阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Regular frustum culling only renders objects within the camera’s view. This is automatic and always happens.
 
Unity ensures that when rendering your objects those which are completely outside of this            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-02-12 11:09:00
                            
                                704阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            假设你正在一个场景中观察一个不透明的球体,大约一半的球体是看不见的。从这个观察得出的结论是,不可见的东西不需要被渲染,因为它对最终图像没有贡献。因此,球体的背面不需要处理,这就是背面剔除的思想。这种类型的剔除也可以一次对整个物体组进行,因此被称为集群背面剔除。假设相机在物体外面,并且没有与物体穿插,所有不透明物体背面的一部分三角形都可以从进一步处理中剔除。如果已知投影三角形在屏幕空间中是顺时针方向            
                
         
            
            
            
            unity在渲染时,默认只是对模型进行视椎体剔除,也就是在相机显示范围内的物体进行剔除,而遮挡剔除则是,渲染物体            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-01-30 16:34:05
                            
                                834阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录前言一、Mesh组成二、使用步骤GetVertices方法GetNormal方法GetTriangles方法OnDrawGizmos方法三、效果四、总结 前言本篇将使用C#脚本实现在Unity中创建平面,并通过调整顶点、UV坐标和三角形来生成Unity Logo 的效果。一、Mesh组成顶点(vertex):顶点是物体表面上的点,用 Vector3 类型表示它们在局部空间中的位置。法线(            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-04 09:34:02
                            
                                94阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            三角形具有两个面。我们使用了以下约定区分正反面。如果三角形顶点是有序的v0,v1,v2,然后我们像这            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-06-16 17:10:55
                            
                                210阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            title: unity-遮挡剔除OcclusionCulling categories: Unity3d tags: [unity, occlusion, culling, 性能, 优化] date: 2019-06-04 12:52:38 comments: false这是一个优化项, 减少看不见物体的绘制遮挡剔除 与 摄像机的视锥体剔除 不一样, 视锥体剔除只是剔除掉视锥体之外的物体 (gp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-31 23:17:57
                            
                                83阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            基本概念:“遮挡剔除”过程可防止 Unity 为那些被其他游戏对象完全挡住(遮挡)的游戏对象执行渲染计算。说白了就是如果摄像机看不见的物体,我就不用去管它了(渲染)。遮挡剔除 我认为其实也是一个空间换时间的方法,做项目的时候可以结合遮挡区域、遮挡入口灵活运用。遮挡剔除的效果展示:未开启遮挡剔除 开启遮挡剔除 遮挡剔除的工作原理:遮挡剔除会在 Unity Editor 中生成有关            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-29 09:52:33
                            
                                197阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            本文章由cartzhang编写,转载请注明出处。 所有权利保留。 作者:cartzhang一、unity裁剪包括,视锥裁剪和遮挡裁剪。什么是视锥体裁剪? 我们来直接看下官方的图解,看图说话。 场景中的对象: https://docs.unity3d.com/uploads/Main/OcclusionNoCulling.png 视锥体的裁剪            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-01-10 00:50:24
                            
                                761阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录3dmax注册坑添加Object 展开UV修改贴图修改顶点颜色导出到Unity添加和修改骨骼参考资料3dmax注册坑科技日新月异,但是工具越来越作之前使用3dmax,顶多让你安装5G,是能正常启动的,最多用VRay或者少了某个组件卡你3dmax编辑器还是能正常用的,现在好了,直接用账号卡你,完全不能用看到上面这个图,就说明踩坑里了,这里并没有什么好的解决方法,请自行百度但请记住,没有            
                
         
            
            
            
            学习参考:b站Up主M_Studio(麦扣老师)的3DRPG系列教程为游戏创建一个ShaderGraph,实现人物在被树木等遮挡物遮挡时显示遮挡剔除的效果如下图所示,游戏人物在移动到树木后面的时候被遮挡住了,无法看到玩家的位置。1.创建shader graph鼠标右键创建一个新的shadergraph 基于上面创建的shadergraph右键新建一个材质取名为occlusion 双击occlusi            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-15 12:16:42
                            
                                222阅读
                            
                                                                             
                 
                
                                
                    