unity草体渲染方案 GPU Instaning

news2024/11/24 10:42:30

有一天看项目里的FrameDebug发现在森林系的场景里草体的drawcall差不多有100多
请添加图片描述
主要是因为灯光贴图,位置等不一样导致的打断合批,导致一个批次只能渲染10个左右的草体
之前有了解过unity有接口(Graphics.DrawMeshInstanced)可以把一样的网格,不同的变换一次性绘制出来,这个比较合适草体这种很多相同网格的渲染
如果一次性渲染500个草体 那不是就几个drawcall就能搞定,相差几十倍的drawcall还是很有必要处理一下
并且还能优化掉obj的消耗,场景的obj越多,各种遍历肯定会越耗时
直接上对比

性能对比

例子1

修改前:请添加图片描述
修改后:请添加图片描述
修改前:
Drawcall 331, 主线程15.4ms, 渲染线程9.4ms, 65FPS
修改后:
Drawcall 304, 主线程13.1ms, 渲染线程7.5ms, 76FPS
成果:
Drawcall 下降27, 主线程下降2.3ms, 渲染线程下降1.9ms,上升11 FPS

例子2请添加图片描述

修改前:
Drawcall 719 主线程20.3ms 渲染线程14.9ms 49FPS
修改后:
Drawcall 603 主线程15.0ms 渲染线程9.3ms 66FPS
成果:
Drawcall 下降116, 主线程下降5.3ms, 渲染线程下降5.6ms,上升17 FPS

并且这还是没做lod的情况 如果加上lod 还能再降一点

表现优化

在这里插入图片描述
可以看到这个草体变白了,因为在做这个草体渲染的同时我还把草体融入了地形,.优化了表现,注意看草体和地形的接触点,画面表现优化,看起来自然很多,优化前看起来非常出戏(需要美术手动调草体材质,不仅费时,而且效果也不会很好),优化后像是地里长出来的,再给几张明显一点的图
融地形前:请添加图片描述
融地形后:请添加图片描述

同时优化草体的灯光图和AO问题:

草体直接用融地形的颜色,直接去掉草体的灯光烘焙,优化了灯光图,间接解决了草体的AO问题,美术烘焙草体的时候不需要AO,只想要接收阴影,现做法是在草下加灯光,非常费劲

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 框架学习笔记(七):Thymeleaf、拦截器 和 文件上传实现(解决了文件重名 和 按日期分目录存放问题)

1 Thymeleaf 1.1 基本介绍 (1)官方文档:Tutorial: Using Thymeleaf (2)Thymeleaf 是什么 Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,可完全替代 JSPThymeleaf 是一个 java 类库&#xf…

AnyGo(虚拟定位软件) for MacOS苹果电脑安装下载 支持最高系统 兼容M芯片

AnyGo for Mac是一款专为Mac用户设计的虚拟定位软件。它允许用户在Mac设备上模拟GPS位置,从而改变设备在各种基于位置的应用和服务中的显示位置。AnyGo提供了简单直观的操作界面,用户可以轻松地在地图上选择任意地点作为模拟位置,或者通过输入…

【平衡二叉树】数据结构—平衡二叉树

平衡二叉树(Balanced Binary Tree)是一种特殊的二叉树,它的左右子树的高度差不超过1,这样可以保证树的高度相对较低,从而使得查找、插入和删除操作的时间复杂度保持在 。 平衡二叉树的基本概念 1. 二叉树&#xff1a…

LeetCode 热题 HOT 100 (020/100)【宇宙最简单版】[创作中]

【链表】No. 0142 环形链表 II【中等】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#…

C++ 简单学习

C简单编译 auto关键字 auto 关键字用于自动类型推导。它允许编译器自动推断变量的类型,使得代码更加简洁和易于编写,尤其是在处理复杂类型或模板编程时。使用 auto 可以避免编写冗长的类型声明,同时减少由于类型不匹配导致的编译错误 auto x…

学习vue3 三,组件基础,父子组件传值

组件基础 每一个.vue 文件都可以充当组件来使用 每一个组件都可以复用 父组件引入之后可以直接当标签使用 案例&#xff1a; App.vue <script setup lang"ts"> import BaseRefAndReactive from "./components/BaseRefAndReactive.vue";</sc…

Docker部署Node+Koa+TS+Mongo项目

Docker 简介 简而言之&#xff0c;Docker 容器轻量级、启动快、可移植&#xff0c;适合微服务架构。主要组件包括 Docker Engine、Docker 镜像、Docker 容器和 Docker Hub&#xff0c;它通过容器打包应用程序及其依赖项&#xff0c;使得应用在任何环境中都能一致运行。 这里不…

Selenium中send_keys上传图片方法以及可能失败的原因

Python Selenium是一个用于自动化浏览器操作的工具&#xff0c;可以用于模拟用户在浏览器中的各种操作。在使用Python Selenium进行自动化测试时&#xff0c;有时需要上传图片。下面是在这种情况下如何上传图片的步骤&#xff1a; 今天是主要说的是input标签&#xff0c;这种可…

基于R语言绘制GGE双标图3

参考资料&#xff1a; https://cran.r-project.org/web/packages/GGEBiplots/GGEBiplots.pdf GGE叠图法一分析品种环境互作模式的理想方法【作物学报】 GGE 双标图如何看&#xff1f;-CSDN博客 1、品种间两两比较 GGE 双标图可用于直接比较两个品种在各个试验点的表现&…

白银市场暴跌的技术分析与投资策略

一、白银市场暴跌与技术分析 周一&#xff08;8月5日&#xff09;&#xff0c;现货白银暴跌逾4.5%&#xff0c;并跌破关键的100日移动均线。FXStreet分析师Christian Borjon Valencia对银价技术走势进行了分析&#xff0c;指出银价前景转为看跌&#xff0c;技术面显示白银将进一…

探索Python并发的秘境:Greenlet库的奇幻之旅

文章目录 探索Python并发的秘境&#xff1a;Greenlet库的奇幻之旅背景&#xff1a;为何选择Greenlet&#xff1f;绿野仙踪&#xff1a;Greenlet是什么&#xff1f;安装&#xff1a;如何将Greenlet纳入囊中&#xff1f;功能探索&#xff1a;Greenlet的五大法宝场景应用&#xff…

【系统分析师】-综合知识-软件工程与项目管理

1、按照成本性态分类&#xff0c;可以分为固定成本、变动成本和混合成本。 &#xff08;1&#xff09;固定成本。管理人员的工资、办公费、固定资产折旧费、员工培训费、广告费、员工培训费、技术开发经费、办公场地及机器设备的折旧费、房屋及设备租金、管理人员的工资等。 …

提示工程:CO-STAR框架

在人工智能领域&#xff0c;尤其是大型语言模型&#xff08;LLM&#xff09;的应用中&#xff0c;提示工程已成为一项至关重要的技能。它不仅需要对技术有深刻的理解&#xff0c;还需要创造力和战略思维的结合。本文将探讨提示工程的重要性&#xff0c;详细介绍CO-STAR框架的使…

0209-开发状态切换(场景切换)功能

一、设置场景状态 1、已有方法 2、实现步骤 引用API&#xff1a;using UnityEngine.SceneManagement 写设置场景状态的方法 场景名字切换&#xff0c;需要获取mSceneName&#xff0c;他是私有的&#xff0c;给一个getset 3、问题 &#xff08;1&#xff09;同步加载 加载场…

【Web开发手礼】探索Web开发的秘密(十六)-Vue2(2)前端工程化、Element组件表格、分页

主要介绍了前端工程化Vue的开发流程、Element组件介绍以及常见的Element组件表格、分页&#xff01;&#xff01;&#xff01; 目录 前言 前端工程化 Vue项目-创建 Vue项目-目录结构 Vue项目-启动 Vue项目-配置端口 Vue项目开发流程 Element组件 快速入门 常见组件 表格…

2024杭电多校(4) 1008. 树形DNA【01Trie、哈希】

题意 给定两颗二叉树 S S S 和 T T T&#xff0c;如果对于 S S S 的某个子树 S ′ S^\prime S′&#xff0c;删除若干个&#xff08;或不删除&#xff09;其子树后&#xff0c;可以和 T T T 相同&#xff08;左子树与左子树匹配&#xff0c;右子树与右子树匹配&#xff0…

C++入门基础知识

在之前我们学习了C语言和初阶数据结构的相关知识&#xff0c;现在已经有了一定的代码能力和对数据结构也有了基础的认识&#xff0c;接下来我们将进入到新的专题当中&#xff0c;这个专题就是C。在C中我们需要花费更大的精力和更长的时间去学习这门建立在C语言基础之上的计算机…

新一代AI软件基础设施 | ZStack AIOS平台“智塔”发布

新一代 IT 基础设施&#xff0c;将从通用算力云平台转型为AI算力AIOS平台。 AI正在重构世界。正如世界是立体的&#xff0c;AI重构也正从多维度开启&#xff1a;基础设施重构&#xff0c;业务应用重构&#xff0c;交互模式重构&#xff0c;数据价值重构&#xff0c;生态系统重…

移动IP:让你的设备随时随地保持连接

随着无线网络技术的迅猛发展&#xff0c;在移动中进行数据通信已成为可能。成千上万的人正在使用移动设备畅享互联网&#xff0c;无论是在火车上、汽车内&#xff0c;还是在其他移动场景中。本文将带你了解移动IP&#xff08;Mobile IP&#xff09;的工作原理及其对网络应用的影…

LLM在线理解;神将网络理解;transform架构

目录 LLM在线理解 神将网络理解 transform架构 模型的子结构: 三个计算 计算1 计算2 计算3 LLM在线理解 LLM Visualization 神将网络理解 transform架构 模型的子结构: 词向量(Embedding) 前馈神经网络(Feed Forward) 残差连接(Add)和层标准化(Norm) 线性层(Linear…