<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>风牛菜籽 &#187; drawcall</title>
	<atom:link href="http://www.caiyanpei.com/tag/drawcall/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.caiyanpei.com</link>
	<description>拖延症重症患者</description>
	<lastBuildDate>Tue, 25 Mar 2025 01:51:19 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6.1</generator>
		<item>
		<title>u3d的drawcall几个注意的地方</title>
		<link>http://www.caiyanpei.com/u3d%e7%9a%84drawcall%e5%87%a0%e4%b8%aa%e6%b3%a8%e6%84%8f%e7%9a%84%e5%9c%b0%e6%96%b9/</link>
		<comments>http://www.caiyanpei.com/u3d%e7%9a%84drawcall%e5%87%a0%e4%b8%aa%e6%b3%a8%e6%84%8f%e7%9a%84%e5%9c%b0%e6%96%b9/#comments</comments>
		<pubDate>Fri, 19 May 2017 12:33:50 +0000</pubDate>
		<dc:creator>tsai</dc:creator>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[日志]]></category>
		<category><![CDATA[drawcall]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://www.xiuchezu.com/?p=570</guid>
		<description><![CDATA[在Unity中，Draw Call是指渲染器在绘制场景中的每个独立物体或图元时发 &#8230; <a href="http://www.caiyanpei.com/u3d%e7%9a%84drawcall%e5%87%a0%e4%b8%aa%e6%b3%a8%e6%84%8f%e7%9a%84%e5%9c%b0%e6%96%b9/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>在Unity中，Draw Call是指渲染器在绘制场景中的每个独立物体或图元时发出的绘制命令。Draw Call的生成大致由以下因素决定的：</p>
<p>1. 独立物体：每个独立的物体（GameObject）通常需要一个单独的Draw Call来进行渲染。例如，如果场景中有100个不同的物体，则会生成100个Draw Call。</p>
<p>2. 材质（Material）：每个材质都会产生一个Draw Call。如果多个物体使用相同的材质，则它们可以合并为一个Draw Call。</p>
<p>3. 纹理（Texture）：每个使用不同纹理的物体也会产生额外的Draw Call。如果多个物体使用相同纹理，则它们可以合并为一个Draw Call。</p>
<p>Draw Call数量的增加会对游戏的运行流畅度产生影响，因为每个Draw Call都需要CPU和GPU的处理，过多的Draw Call会增加渲染的开销。较高的Draw Call数量可能导致以下问题：</p>
<p>1. CPU开销：每个Draw Call都需要一定的CPU开销，包括物体和材质的设置、状态切换等。当Draw Call数量过多时，CPU将花费更多的时间来处理渲染命令，可能降低游戏的帧率。</p>
<p>2. GPU开销：在GPU端，每个Draw Call都需要进行渲染资源切换和状态设置。大量的Draw Call会增加GPU的负载，可能导致性能瓶颈，如卡顿和低帧率。</p>
<p>为了优化Draw Call，常见的有以下几个优化方案：</p>
<p>1. 合批（Batching）：尽量减少独立物体和材质的数量，以减少Draw Call的生成。使用相同材质的物体可以合并为一个Draw Call，可以使用静态批处理（Static Batching）或动态批处理（Dynamic Batching）来实现。</p>
<p>2. 材质合并（Material Merging）：如果多个物体使用相似的材质，可以将它们合并为一个材质，以减少Draw Call的数量。</p>
<p>3. 纹理图集（Texture Atlas）：将多个小纹理合并为一个大纹理图集，可以减少纹理切换和Draw Call的数量。</p>
<p>4. GPU Instancing：对于使用相同网格和材质的大量物体，可以使用GPU Instancing来减少Draw Call的数量。GPU Instancing允许多个物体同时渲染，只产生一个Draw Call。</p>
<p>5. 动态LOD（Level of Detail）：根据物体的距离和屏幕尺寸，使用不同级别的细节模型（LOD）来减少多余的绘制。通过动态LOD，可以减少不必要的Draw Call。</p>
<p>6. 静态合并（Static Mesh Combining）：将多个静态网格合并为一个网格，以减少Draw Call的数量。适用于静态不可变的场景元素。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caiyanpei.com/u3d%e7%9a%84drawcall%e5%87%a0%e4%b8%aa%e6%b3%a8%e6%84%8f%e7%9a%84%e5%9c%b0%e6%96%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
