<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Lua_UnitRendering</id>
	<title>Lua UnitRendering - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Lua_UnitRendering"/>
	<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Lua_UnitRendering&amp;action=history"/>
	<updated>2026-04-21T06:05:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Lua_UnitRendering&amp;diff=453&amp;oldid=prev</id>
		<title>Qrow: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Lua_UnitRendering&amp;diff=453&amp;oldid=prev"/>
		<updated>2025-11-13T01:50:58Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:50, 12 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Qrow</name></author>
	</entry>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Lua_UnitRendering&amp;diff=452&amp;oldid=prev</id>
		<title>interwiki3&gt;Rafal99: Add Spring.UnitRendering.SetProjectileLuaDraw</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Lua_UnitRendering&amp;diff=452&amp;oldid=prev"/>
		<updated>2021-09-17T01:11:00Z</updated>

		<summary type="html">&lt;p&gt;Add Spring.UnitRendering.SetProjectileLuaDraw&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Engine_Development|Development]] &amp;lt; [[Lua_Scripting|Lua Scripting]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
==Unit &amp;amp; Feature Rendering==&lt;br /&gt;
{{new|101.0}} These functions are now also duplicated for features i.e. {{name|Spring.FeatureRendering.X}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.SetLODCount&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  ( number unitID, int lodCount ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.SetLODLength&amp;#039;&amp;#039;&amp;#039; &amp;lt;font color=#55ee99&amp;gt;(`lod` is 1-indexed)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, int lod, number lodLength ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.SetLODDistance&amp;#039;&amp;#039;&amp;#039; &amp;lt;font color=#55ee99&amp;gt;(same as SetLODLength(), but adjusted for 45deg FOV + 1024x768)&amp;lt;/font&amp;gt;&lt;br /&gt;
  (number unitID,  int lod, number lodDistance ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.SetPieceList&amp;#039;&amp;#039;&amp;#039; &amp;lt;font color=#55ee99&amp;gt;(displayList=nil reset to default)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, int lod, int piece [, number displayList = nil ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.GetMaterial&amp;#039;&amp;#039;&amp;#039; &amp;lt;font color=#55ee99&amp;gt;(creates a material userdata)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( [[Lua_UnitRendering#MaterialTypes|string MaterialType]], [[Lua_UnitRendering#Material_Table|table Material]] ) -&amp;gt; [[Lua_UnitRendering#Material_UserData|userdata Material]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.SetMaterial&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  ( number unitID, int lod, [[Lua_UnitRendering#MaterialTypes|string MaterialType]], [[Lua_UnitRendering#Material_UserData|userdata Material]] | [[Lua_UnitRendering#Material_Table|table Material]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.SetMaterialLastLOD&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  ( number unitID, [[Lua_UnitRendering#MaterialTypes|string MaterialType]], int lastLOD ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.SetMaterialDisplayLists&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  ( number unitID, int lod, [[Lua_UnitRendering#MaterialTypes|string MaterialType]], [[Lua_OpenGL_Api#Display_Lists|preDisplayList]], [[Lua_OpenGL_Api#Display_Lists|postDisplayList]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.SetUnitUniform&amp;#039;&amp;#039;&amp;#039; &amp;lt;font color=red&amp;gt;(unfinished)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, [[Lua_UnitRendering#MaterialTypes|string MaterialType]], int lod, arg1, arg2, ... ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
==Debug==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.Debug&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;note&amp;quot;&amp;gt;(prints some usefull debug informations)&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( [ number unitID ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
==Lua&amp;#039;s DrawXYZ-Callin==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.SetUnitLuaDraw&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;note&amp;quot;&amp;gt;(enables the LuaRules&amp;#039; DrawUnit callin)&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( number unitID, boolean enabled ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.FeatureRendering.SetFeatureLuaDraw&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;note&amp;quot;&amp;gt;(enables the LuaRules&amp;#039; DrawFeature callin)&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( number featureID, boolean enabled ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Spring.UnitRendering.SetProjectileLuaDraw&amp;#039;&amp;#039;&amp;#039; &amp;lt;span class=&amp;quot;note&amp;quot;&amp;gt;(enables the LuaRules&amp;#039; DrawProjectile callin)&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( number projectileID, boolean enabled ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
==MaterialTypes==&lt;br /&gt;
 &amp;quot;alpha&amp;quot;&lt;br /&gt;
 &amp;quot;opaque&amp;quot;&lt;br /&gt;
 &amp;quot;alpha_reflect&amp;quot;&lt;br /&gt;
 &amp;quot;opaque_reflect&amp;quot;&lt;br /&gt;
 &amp;quot;shadow&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Material UserData==&lt;br /&gt;
&amp;lt;font color=red&amp;gt;none user accessible methods (yet)&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Material Table==&lt;br /&gt;
Prior to 102.0:&lt;br /&gt;
&lt;br /&gt;
  material = {&lt;br /&gt;
    [&amp;quot;order&amp;quot;  = number ,]&lt;br /&gt;
    [&amp;quot;culling&amp;quot; = [[Lua_ConstGL#Culling|number face]] ,]&lt;br /&gt;
    [&amp;quot;shader&amp;quot; = [[Lua_GLSL_Api|lua_shader]] | string &amp;quot;3do&amp;quot; | string &amp;quot;s3o&amp;quot; ,]&lt;br /&gt;
    &amp;lt;span class=note&amp;gt;(95.0: alias standard_shader)&amp;lt;/span&amp;gt;&lt;br /&gt;
    [&amp;quot;deferred_shader&amp;quot; = { vertex = ..., ... } ,]&lt;br /&gt;
    &amp;lt;span class=note&amp;gt;(new in 95.0, alias deferred. Deferred fragment shaders must *ONLY* write to gl_FragData[i] where&lt;br /&gt;
      i = {0 = normals, 1 = diffuse, 2 = specular, 3 = emissive, 4 = misc})&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;texunits&amp;quot; = {&lt;br /&gt;
        [ [0] = { [&amp;quot;tex&amp;quot; = &amp;lt;font color=#55ee99&amp;gt;[[Lua_OpenGL_Api#Textures|see gl.Texture]]&amp;lt;/font&amp;gt; ,]&lt;br /&gt;
                  [&amp;quot;enable&amp;quot; = boolean true ] }, ]&lt;br /&gt;
        [ [3] = &amp;lt;font color=#55ee99&amp;gt;[[Lua_OpenGL_Api#Textures|see gl.Texture]]&amp;lt;/font&amp;gt;, ]&lt;br /&gt;
        &amp;lt;span class=note&amp;gt;(upto [15] and supports holes in it)&amp;lt;/span&amp;gt;&lt;br /&gt;
      } ,]&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;texunit0&amp;quot; = &amp;lt;font color=#55ee99&amp;gt;[[Lua_OpenGL_Api#Textures|see gl.Texture]]&amp;lt;/font&amp;gt; ,]&lt;br /&gt;
     ...&lt;br /&gt;
    [&amp;quot;texunit7&amp;quot; = &amp;lt;font color=#55ee99&amp;gt;[[Lua_OpenGL_Api#Textures|see gl.Texture]]&amp;lt;/font&amp;gt; ,]&lt;br /&gt;
&lt;br /&gt;
    [&amp;quot;prelist&amp;quot;   = [[Lua_OpenGL_Api#Display_Lists|lua_displaylist]] ,]&lt;br /&gt;
    [&amp;quot;postlist&amp;quot;  = [[Lua_OpenGL_Api#Display_Lists|lua_displaylist]] ,]&lt;br /&gt;
    [&amp;quot;usecamera&amp;quot; = boolean ,]&lt;br /&gt;
    [&amp;quot;cameraloc&amp;quot; = number uniformLocation,]&lt;br /&gt;
    [&amp;quot;cameraposloc&amp;quot; = number uniformLocation,]&lt;br /&gt;
    [&amp;quot;camerainvloc&amp;quot;  = number uniformLocation,]&lt;br /&gt;
    [&amp;quot;sunposloc&amp;quot;     = number uniformLocation,] &amp;lt;span class=note&amp;gt;(new in 0.83)&amp;lt;/span&amp;gt;&lt;br /&gt;
    [&amp;quot;shadowloc&amp;quot;       = number uniformLocation,]&lt;br /&gt;
    [&amp;quot;shadowparamsloc&amp;quot; = number uniformLocation,]&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Post 102.0:&lt;br /&gt;
&lt;br /&gt;
Material tables are now expected to contain subtables defining the uniforms; instead of&lt;br /&gt;
   material = {shader = ..., cameraposloc = 123, texunits = ..., ...}&lt;br /&gt;
say&lt;br /&gt;
   material = {shader = ..., uniforms = {cameraposloc = 123, ...}, texunits = ..., ...}&lt;br /&gt;
&lt;br /&gt;
For a material that has both types of shader, supply &amp;quot;standardshader&amp;quot;, &amp;quot;deferredshader&amp;quot;, &amp;quot;standarduniforms&amp;quot;, and &amp;quot;deferreduniforms&amp;quot; as keys i.e:&lt;br /&gt;
   material = {standardshader = ..., standarduniforms = {...}, deferredshader = ..., deferredunifroms = { ... }, texunits = ..., ...}&lt;br /&gt;
&lt;br /&gt;
New keys for these uniform subtables can be&lt;br /&gt;
     &amp;quot;viewmatrixloc&amp;quot;    // synonym for &amp;quot;cameraloc&amp;quot;&lt;br /&gt;
     &amp;quot;projmatrixloc&amp;quot;    // camera projection&lt;br /&gt;
     &amp;quot;viprmatrixloc&amp;quot;    // camera view-projection&lt;br /&gt;
     &amp;quot;viewmatrixinvloc&amp;quot; // synonym for &amp;quot;camerainvloc&amp;quot;&lt;br /&gt;
     &amp;quot;projmatrixinvloc&amp;quot; // camera inverse projection&lt;br /&gt;
     &amp;quot;viprmatrixinvloc&amp;quot; // camera inverse view-projection&lt;br /&gt;
     &amp;quot;shadowmatrixloc&amp;quot;  // synonym for &amp;quot;shadowloc&amp;quot;&lt;br /&gt;
     &amp;quot;cameradirloc&amp;quot;     // camera forward direction&lt;br /&gt;
     &amp;quot;sundirloc&amp;quot;        // synonym for &amp;quot;sunposloc&amp;quot;&lt;br /&gt;
     &amp;quot;rndvecloc&amp;quot;        // random 3-vector with length in [0, 1)&lt;br /&gt;
     &amp;quot;simframeloc&amp;quot;      // current simulation frame&lt;br /&gt;
     &amp;quot;visframeloc&amp;quot;      // current renderer frame&lt;br /&gt;
[[category: Lua]]&lt;/div&gt;</summary>
		<author><name>interwiki3&gt;Rafal99</name></author>
	</entry>
</feed>