mirror of
https://github.com/dhewm/iddevnet.git
synced 2024-11-22 04:21:59 +00:00
5a7e5cbe45
it's more or less usable now! all images (except for the ones of moinmoin itself) are still missing. possibly articles are missing as well, haven't checked yet (and the lost downloads are missing, of course)
245 lines
14 KiB
HTML
245 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>ArtReference Q4Shaders - 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="./ArtReference_Q4Shaders?action=raw">
|
||
<link rel="Alternate" media="print" title="Print View" href="./ArtReference_Q4Shaders?action=print">
|
||
<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="./ArtReference_Q4Shaders?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="./ArtReference_Q4Shaders?action=fullsearch&value=linkto%3A%22ArtReference+Q4Shaders%22&context=180">ArtReference Q4Shaders</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="./ArtReference_Q4Shaders.html">ArtReference Q4Shaders</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="./ArtReference_Q4Shaders?action=info">Info</a></li><li><a href="./ArtReference_Q4Shaders?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="line867">
|
||
<h2 id="head-1ab58a6e522f9b7804f32a3891adf55af7450010">How to make the Shader System work for you, a basic guide</h2>
|
||
<span class="anchor" id="line-2"></span><span class="anchor" id="line-3"></span><p class="line862">In this document, we’re going to go over basic shader issues and definitions, how to write them as well as what you can and can’t do with shaders. I’ll be going over mostly basics, i.e.: getting things in game issues. <strong>Materials</strong> are the same as <strong>Shaders</strong>, and the term is used interchangeably throughout the Quake 4 SDK. <span class="anchor" id="line-4"></span><span class="anchor" id="line-5"></span><p class="line867"><strong>In this document you will find:</strong> <span class="anchor" id="line-6"></span><ul><li><p class="line891"><strong>Section 1</strong>: <a href="./ArtReference_Q4Shaders_Definitions.html">Definitions</a> <span class="anchor" id="line-7"></span></li><li><p class="line891"><strong>Section 2</strong>: <a href="./ArtReference_Q4Shaders_Textures.html">How to write a shader for textures (longhand)</a> <span class="anchor" id="line-8"></span></li><li><p class="line891"><strong>Section 3</strong>: <a href="./ArtReference_Q4Shaders_Guides.html">Texture Guides</a> <span class="anchor" id="line-9"></span></li><li><p class="line891"><strong>Section 4</strong>: <a href="./ArtReference_Q4Shaders_Models.html">How to write a shader for models</a> <span class="anchor" id="line-10"></span></li><li><p class="line891"><strong>Section 5</strong>: <a href="./ArtReference_Q4Shaders_SkinFiles.html">.skin files</a> <span class="anchor" id="line-11"></span></li><li><p class="line891"><strong>Section 6</strong>: <a href="./ArtReference_Q4Shaders_Extra_Passes.html">Extra passes, additive and alpha</a> <span class="anchor" id="line-12"></span></li><li><p class="line891"><strong>Section 7</strong>: <a href="./ArtReference_Q4Shaders_Tables.html">Modulation with tables</a> <span class="anchor" id="line-13"></span></li><li><p class="line891"><strong>Section 8</strong>: <a href="./ArtReference_Q4Shaders_AnimatedStrips.html">Special Case:Animated shaders</a> <span class="anchor" id="line-14"></span><span class="anchor" id="line-15"></span></li></ul><p class="line874">Please understand that this document covers the bare-bones of the shader system. Fortunately, the bare-bones is sufficient for a lot of what the artist needs to do and it’s the basics that can lead to more complex shaders. <span class="anchor" id="line-16"></span><span class="anchor" id="line-17"></span><p class="line867"><hr /><p class="line874"> <span class="anchor" id="line-18"></span><span class="anchor" id="line-19"></span><p class="line867">
|
||
<h2 id="head-9069596f72b521c8aeae0e01c9f85f05d85669d6">Troubleshooting</h2>
|
||
<span class="anchor" id="line-20"></span><span class="anchor" id="line-21"></span><p class="line874">Troubleshooting shaders can be a little bit like finding a needled in a haystack. Unfortunately, I can’t go through every instance of what can happen, because this document would be immense. So I’ll go over some stuff to look for in a shader: <span class="anchor" id="line-22"></span><span class="anchor" id="line-23"></span><ol type="1"><li>Make sure all of your shader passes have an open and close brace. <span class="anchor" id="line-24"></span><span class="anchor" id="line-25"></span></li><li class="gap">Check your spelling <span class="anchor" id="line-26"></span><span class="anchor" id="line-27"></span></li><li class="gap">Check your path names. <span class="anchor" id="line-28"></span><span class="anchor" id="line-29"></span><ol type="i"><li>Make sure path names don’t have spaces. <span class="anchor" id="line-30"></span><span class="anchor" id="line-31"></span></li><li class="gap">Make sure the path actually exists. <span class="anchor" id="line-32"></span><span class="anchor" id="line-33"></span></li></ol></li></ol><p class="line874">The key to learning the shaders is experimenting, so the best thing to do is dive into the deep end and see what you get. <span class="anchor" id="line-34"></span><span class="anchor" id="bottom"></span></div><p id="pageinfo" class="info" lang="en" dir="ltr">ArtReference Q4Shaders (last edited 2005-11-09 20:30:30 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="./ArtReference_Q4Shaders?action=info">Info</a></li><li><a href="./ArtReference_Q4Shaders?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>
|
||
|