mirror of
https://github.com/dhewm/iddevnet.git
synced 2024-11-21 20:11:27 +00:00
2c9f515b10
Only guied_ansi.jpg and guied_symbol.jpg of Adding_Fonts_to_use_in_Quake_4_GUIs are still missing (and Doom3/skins_imp.png), but so far no one seems to have them
251 lines
14 KiB
HTML
251 lines
14 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
|
<meta name="robots" content="index,nofollow">
|
|
|
|
<title>Effects Performance - Quake 4 SDK Documentation</title>
|
|
<script type="text/javascript" src="wiki/common/js/common.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
<!--// common functions
|
|
|
|
// We keep here the state of the search box
|
|
searchIsDisabled = false;
|
|
|
|
function searchChange(e) {
|
|
// Update search buttons status according to search box content.
|
|
// Ignore empty or whitespace search term.
|
|
var value = e.value.replace(/\s+/, '');
|
|
if (value == '' || searchIsDisabled) {
|
|
searchSetDisabled(true);
|
|
} else {
|
|
searchSetDisabled(false);
|
|
}
|
|
}
|
|
|
|
function searchSetDisabled(flag) {
|
|
// Enable or disable search
|
|
document.getElementById('fullsearch').disabled = flag;
|
|
document.getElementById('titlesearch').disabled = flag;
|
|
}
|
|
|
|
function searchFocus(e) {
|
|
// Update search input content on focus
|
|
if (e.value == 'Search') {
|
|
e.value = '';
|
|
e.className = '';
|
|
searchIsDisabled = false;
|
|
}
|
|
}
|
|
|
|
function searchBlur(e) {
|
|
// Update search input content on blur
|
|
if (e.value == '') {
|
|
e.value = 'Search';
|
|
e.className = 'disabled';
|
|
searchIsDisabled = true;
|
|
}
|
|
}
|
|
|
|
function actionsMenuInit(title) {
|
|
// Initialize action menu
|
|
for (i = 0; i < document.forms.length; i++) {
|
|
var form = document.forms[i];
|
|
if (form.className == 'actionsmenu') {
|
|
// Check if this form needs update
|
|
var div = form.getElementsByTagName('div')[0];
|
|
var label = div.getElementsByTagName('label')[0];
|
|
if (label) {
|
|
// This is the first time: remove label and do buton.
|
|
div.removeChild(label);
|
|
var dobutton = div.getElementsByTagName('input')[0];
|
|
div.removeChild(dobutton);
|
|
// and add menu title
|
|
var select = div.getElementsByTagName('select')[0];
|
|
var item = document.createElement('option');
|
|
item.appendChild(document.createTextNode(title));
|
|
item.value = 'show';
|
|
select.insertBefore(item, select.options[0]);
|
|
select.selectedIndex = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//-->
|
|
</script>
|
|
|
|
|
|
<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="wiki/modern/css/common.css">
|
|
<link rel="stylesheet" type="text/css" charset="utf-8" media="screen" href="wiki/modern/css/screen.css">
|
|
<link rel="stylesheet" type="text/css" charset="utf-8" media="print" href="wiki/modern/css/print.css">
|
|
<link rel="stylesheet" type="text/css" charset="utf-8" media="projection" href="wiki/modern/css/projection.css">
|
|
|
|
<!-- css only for MSIE browsers -->
|
|
<!--[if IE]>
|
|
<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="wiki/modern/css/msie.css">
|
|
<![endif]-->
|
|
|
|
|
|
|
|
<link rel="Start" href="./Quake4SDK.html">
|
|
<link rel="Alternate" title="Wiki Markup" href="./Effects_Performance?action=raw">
|
|
<link rel="Alternate" media="print" title="Print View" href="./Effects_Performance?action=print">
|
|
<link rel="Appendix" title="fx_overdraw_bad.jpg" href="./Effects_Performance?action=AttachFile&do=view&target=fx_overdraw_bad.jpg">
|
|
<link rel="Appendix" title="fx_overdraw_good.jpg" href="./Effects_Performance?action=AttachFile&do=view&target=fx_overdraw_good.jpg">
|
|
<link rel="Search" href="./FindPage.html">
|
|
<link rel="Index" href="./TitleIndex.html">
|
|
<link rel="Glossary" href="./WordIndex.html">
|
|
<link rel="Help" href="./HelpOnFormatting.html">
|
|
</head>
|
|
|
|
<body lang="en" dir="ltr">
|
|
|
|
<div id="header">
|
|
<div id="logo"><a href="./Quake4SDK.html"><img src="wiki/common/moinmoin.png" alt="MoinMoin Logo"></a></div>
|
|
|
|
<form id="searchform" method="get" action="">
|
|
<div>
|
|
<input type="hidden" name="action" value="fullsearch">
|
|
<input type="hidden" name="context" value="180">
|
|
<label for="searchinput">Search:</label>
|
|
<input id="searchinput" type="text" name="value" value="" size="20"
|
|
onfocus="searchFocus(this)" onblur="searchBlur(this)"
|
|
onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search">
|
|
<input id="titlesearch" name="titlesearch" type="submit"
|
|
value="Titles" alt="Search Titles">
|
|
<input id="fullsearch" name="fullsearch" type="submit"
|
|
value="Text" alt="Search Full Text">
|
|
</div>
|
|
</form>
|
|
<script type="text/javascript">
|
|
<!--// Initialize search form
|
|
var f = document.getElementById('searchform');
|
|
f.getElementsByTagName('label')[0].style.display = 'none';
|
|
var e = document.getElementById('searchinput');
|
|
searchChange(e);
|
|
searchBlur(e);
|
|
//-->
|
|
</script>
|
|
|
|
<ul id="username"><li><a href="./Effects_Performance?action=login" id="login">Login</a></li></ul>
|
|
<div id="locationline">
|
|
|
|
|
|
<ul id="pagelocation">
|
|
<li><a class="backlink" title="Click to do a full-text search for this title" href="./Effects_Performance?action=fullsearch&value=linkto%3A%22Effects+Performance%22&context=180">Effects Performance</a></li>
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
|
|
<ul id="navibar">
|
|
<li class="wikilink"><a href="./GettingStarted.html">GettingStarted</a></li><li class="wikilink"><a href="./ScriptFile.html">ScriptFile</a></li><li class="wikilink"><a href="./MakeAMod.html">MakeAMod</a></li><li class="wikilink"><a href="./LevelEditor.html">LevelEditor</a></li><li class="wikilink"><a href="./FXEditor.html">FXEditor</a></li><li class="wikilink"><a href="./GUIEditor.html">GUIEditor</a></li><li class="wikilink"><a href="./Sounds.html">Sounds</a></li><li class="wikilink"><a href="./Animations.html">Animations</a></li><li class="wikilink"><a href="./ArtReference.html">ArtReference</a></li><li class="wikilink"><a href="./DownloadableContent.html">DownloadableContent</a></li><li class="wikilink"><a href="./RecentChanges.html">RecentChanges</a></li><li class="wikilink"><a href="./FindPage.html">FindPage</a></li><li class="wikilink"><a href="./HelpContents.html">HelpContents</a></li><li class="current"><a href="./Effects_Performance.html">Effects Performance</a></li>
|
|
</ul>
|
|
|
|
<div id="pageline"><hr style="display:none;"></div>
|
|
|
|
<ul class="editbar"><li><span class="disabled">Immutable Page</span></li><li><a href="./Effects_Performance?action=info">Info</a></li><li><a href="./Effects_Performance?action=AttachFile">Attachments</a></li><li>
|
|
<form class="actionsmenu" method="get" action="">
|
|
<div>
|
|
<label>More Actions:</label>
|
|
<select name="action"
|
|
onchange="if ((this.selectedIndex != 0) &&
|
|
(this.options[this.selectedIndex].disabled == false)) {
|
|
this.form.submit();
|
|
}
|
|
this.selectedIndex = 0;">
|
|
<option value="raw">Raw Text</option>
|
|
<option value="print">Print View</option>
|
|
<option value="RenderAsDocbook">Render as Docbook</option>
|
|
<option value="refresh">Delete Cache</option>
|
|
<option value="show" disabled class="disabled">------------</option>
|
|
<option value="SpellCheck">Check Spelling</option>
|
|
<option value="LikePages">Like Pages</option>
|
|
<option value="LocalSiteMap">Local Site Map</option>
|
|
<option value="show" disabled class="disabled">------------</option>
|
|
<option value="RenamePage" disabled class="disabled">Rename Page</option>
|
|
<option value="DeletePage" disabled class="disabled">Delete Page</option>
|
|
<option value="show" disabled class="disabled">------------</option>
|
|
<option value="MyPages">My Pages</option>
|
|
<option value="SubscribeUser">Subscribe User</option>
|
|
<option value="show" disabled class="disabled">------------</option>
|
|
<option value="Despam">Remove Spam</option>
|
|
<option value="PackagePages">Package Pages</option>
|
|
</select>
|
|
<input type="submit" value="Do">
|
|
</div>
|
|
<script type="text/javascript">
|
|
<!--// Init menu
|
|
actionsMenuInit('More Actions:');
|
|
//-->
|
|
</script>
|
|
</form>
|
|
</li></ul>
|
|
|
|
</div>
|
|
|
|
<div id="page" lang="en" dir="ltr">
|
|
<div dir="ltr" id="content" lang="en"><span class="anchor" id="top"></span>
|
|
<span class="anchor" id="line-1"></span><p class="line874">When creating effects, one needs to be aware of the performance hit on Quake4. Many things need to be balanced in a scene, from polygon count, textury memory useage, overdraw and physics/game code. <span class="anchor" id="line-2"></span><span class="anchor" id="line-3"></span><p class="line874">The main things to be aware of are: <span class="anchor" id="line-4"></span><hr /><p class="line874"> <span class="anchor" id="line-5"></span>
|
|
<h2 id="head-420e8e00558abb3a7a7b390f3c342fb3a7a3127a">Segment count</h2>
|
|
<span class="anchor" id="line-6"></span><span class="anchor" id="line-7"></span><p class="line874">Less segments are cheaper. Instead of 4 segments each with 10 particles, can you accomplish the same effect with 2 segments of 20 particles each? Every segment is a separate draw call to your video card and another set of particles for the game to process. Try unchecking segments of a complex effect and see if you notice a different. Many times a layered effect can have a segment or two removed that are just not noticeable within the big picture. <span class="anchor" id="line-8"></span><span class="anchor" id="line-9"></span><p class="line867">
|
|
<h2 id="head-2546098bdf1b336c7aa4933ad38da11c9ba16a27">Overdraw</h2>
|
|
<span class="anchor" id="line-10"></span><span class="anchor" id="line-11"></span><p class="line862">Overdraw is how many layers of shaders are in a scene. This can be turned on with <strong>r_showoverdraw 1</strong> at the console or by going to <strong>View>Show>Show Overdraw</strong> in the <a href="./FXEditor.html">FXEditor</a>. The range of color represents the severity of overdraw. From least overdraw to most overdraw: <strong>Blue -> Green -> Yellow -> Orange -> Red -> Purple</strong>. <span class="anchor" id="line-12"></span><span class="anchor" id="line-13"></span><p class="line867"><img class="attachment" src="./fx_overdraw_bad.jpg" title="attachment:fx_overdraw_bad.jpg" /> <span class="anchor" id="line-14"></span><span class="anchor" id="line-15"></span><p class="line867"><img class="attachment" src="./fx_overdraw_good.jpg" title="attachment:fx_overdraw_good.jpg" /> <span class="anchor" id="line-16"></span><span class="anchor" id="line-17"></span><p class="line867"><a href="./FXEditor_Tab_-_Sprite.html">Sprites</a> can be very expensive when viewed in a line like a rocket trail. In some cases you might want to try using <a href="./FXEditor_Tab_-_Sprite.html">line segments</a> instead of <a href="./FXEditor_Tab_-_Sprite.html">sprites</a>. Since they always rotate to face the user, they can have much less overdraw than <a href="./FXEditor_Tab_-_Sprite.html">sprites</a>. <span class="anchor" id="line-18"></span><span class="anchor" id="line-19"></span><p class="line867">
|
|
<h2 id="head-65cdf23e8fb9c2e135668e1daeff744d9166c91e">Physics</h2>
|
|
<span class="anchor" id="line-20"></span><span class="anchor" id="line-21"></span><p class="line874">Physics on segments is very, very expensive. If you must apply physics, consider applying it to only 1 of a few segments instead of all. An example of this would be if you have rock chunks fly out of a wall when shot. Make 2 rock chunk segments, one with physics and 3 particles and another without physics that has 9 particles. When the whole effect is played, seeing the 3 rock chunks bounce adds to the effect without being as expensive as 12 particles with physics. <span class="anchor" id="line-22"></span><span class="anchor" id="line-23"></span><p class="line867">
|
|
<h2 id="head-76c0789664393f14dcff02c112b870753d8501b9">Particle Count</h2>
|
|
<span class="anchor" id="line-24"></span><span class="anchor" id="line-25"></span><p class="line874">Try to lower the count on effects and see if it really makes the effect look that much worse. Lower counts is less overdraw and lower poly counts in a given scene. Try to use less (more opaque) images rather than stacking higher counts of images that are partially translucent. <span class="anchor" id="line-26"></span><span class="anchor" id="bottom"></span></div><p id="pageinfo" class="info" lang="en" dir="ltr">Effects Performance (last edited 2005-11-08 23:41:16 by <span title="MattVainio @ 67.129.250.254[67.129.250.254]"><a class="nonexistent" href="./MattVainio.html" title="MattVainio @ 67.129.250.254[67.129.250.254]">MattVainio</a></span>)</p>
|
|
|
|
<div id="pagebottom"></div>
|
|
</div>
|
|
|
|
|
|
<div id="footer">
|
|
<ul class="editbar"><li><span class="disabled">Immutable Page</span></li><li><a href="./Effects_Performance?action=info">Info</a></li><li><a href="./Effects_Performance?action=AttachFile">Attachments</a></li><li>
|
|
<form class="actionsmenu" method="get" action="">
|
|
<div>
|
|
<label>More Actions:</label>
|
|
<select name="action"
|
|
onchange="if ((this.selectedIndex != 0) &&
|
|
(this.options[this.selectedIndex].disabled == false)) {
|
|
this.form.submit();
|
|
}
|
|
this.selectedIndex = 0;">
|
|
<option value="raw">Raw Text</option>
|
|
<option value="print">Print View</option>
|
|
<option value="RenderAsDocbook">Render as Docbook</option>
|
|
<option value="refresh">Delete Cache</option>
|
|
<option value="show" disabled class="disabled">------------</option>
|
|
<option value="SpellCheck">Check Spelling</option>
|
|
<option value="LikePages">Like Pages</option>
|
|
<option value="LocalSiteMap">Local Site Map</option>
|
|
<option value="show" disabled class="disabled">------------</option>
|
|
<option value="RenamePage" disabled class="disabled">Rename Page</option>
|
|
<option value="DeletePage" disabled class="disabled">Delete Page</option>
|
|
<option value="show" disabled class="disabled">------------</option>
|
|
<option value="MyPages">My Pages</option>
|
|
<option value="SubscribeUser">Subscribe User</option>
|
|
<option value="show" disabled class="disabled">------------</option>
|
|
<option value="Despam">Remove Spam</option>
|
|
<option value="PackagePages">Package Pages</option>
|
|
</select>
|
|
<input type="submit" value="Do">
|
|
</div>
|
|
<script type="text/javascript">
|
|
<!--// Init menu
|
|
actionsMenuInit('More Actions:');
|
|
//-->
|
|
</script>
|
|
</form>
|
|
</li></ul>
|
|
|
|
<ul id="credits">
|
|
<li><a href="http://moinmoin.wikiwikiweb.de/">MoinMoin Powered</a></li><li><a href="http://www.python.org/">Python Powered</a></li><li><a href="http://validator.w3.org/check?uri=referer">Valid HTML 4.01</a></li>
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|
|
|