<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.xoreos.org/index.php?action=history&amp;feed=atom&amp;title=RenderingWitcher</id>
	<title>RenderingWitcher - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.xoreos.org/index.php?action=history&amp;feed=atom&amp;title=RenderingWitcher"/>
	<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=RenderingWitcher&amp;action=history"/>
	<updated>2026-04-30T12:19:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.6</generator>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=RenderingWitcher&amp;diff=483&amp;oldid=prev</id>
		<title>Mirv at 22:45, 26 October 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=RenderingWitcher&amp;diff=483&amp;oldid=prev"/>
		<updated>2023-10-26T22:45:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:45, 26 October 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Witcher has a lot of rewrites from the base Aurora engine, and there&amp;#039;s a good deal that functions differently to e.g Neverwinter Nights. There&amp;#039;s a more expansive weathering system, it looks like shaders are more common, SpeedTree is used, modelnode formats are a good deal different, and so on. One of the first steps in deciphering much of this is to look at the raw model data and try to figure out what it shows, and then how to map it to the rendering system in xoreos.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Witcher has a lot of rewrites from the base Aurora engine, and there&amp;#039;s a good deal that functions differently to e.g Neverwinter Nights. There&amp;#039;s a more expansive weathering system, it looks like shaders are more common, SpeedTree is used, modelnode formats are a good deal different, and so on. One of the first steps in deciphering much of this is to look at the raw model data and try to figure out what it shows, and then how to map it to the rendering system in xoreos.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First of all, this is an obvious work in progress. There are a lot of unknowns. It&amp;#039;s not even certain if blending is always enabled (like with NWN), or if that was fixed: there isn&amp;#039;t an api trace of the rendering commands to know this.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First of all, this is an obvious work in progress. There are a lot of unknowns. It&amp;#039;s not even certain if blending is always enabled (like with NWN), or if that was fixed: there isn&amp;#039;t an api trace of the rendering commands to know this&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Render Order ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;It&amp;#039;s worth nothing that Witcher has transparencyHint similar to NWN, but also has a possible &amp;quot;transparency shift&amp;quot; value, and more importantly a &amp;quot;default render list&amp;quot; value for meshes. The name of default render list implies multiple lists of rendering exist, for different reasons. Values of 1, 8, 15, and also -1 (or 0xFFFFFFFF) have been observed for render list. What the common thread is through each hasn&amp;#039;t been looked into detail just yet, but it&amp;#039;s almost certain that they will have an impact on rendering order&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Textures ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Textures ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mirv</name></author>
	</entry>
	<entry>
		<id>https://wiki.xoreos.org/index.php?title=RenderingWitcher&amp;diff=482&amp;oldid=prev</id>
		<title>Mirv: Created page with &quot;In another page of rambling, this is dedicated to rendering notes about The Witcher (Wiedźmin).  Witcher has a lot of rewrites from the base Aurora engine, and there&#039;s a good deal that functions differently to e.g Neverwinter Nights. There&#039;s a more expansive weathering system, it looks like shaders are more common, SpeedTree is used, modelnode formats are a good deal different, and so on. One of the first steps in deciphering much of this is to look at the raw model dat...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.xoreos.org/index.php?title=RenderingWitcher&amp;diff=482&amp;oldid=prev"/>
		<updated>2023-10-25T20:19:28Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;In another page of rambling, this is dedicated to rendering notes about The Witcher (Wiedźmin).  Witcher has a lot of rewrites from the base Aurora engine, and there&amp;#039;s a good deal that functions differently to e.g Neverwinter Nights. There&amp;#039;s a more expansive weathering system, it looks like shaders are more common, SpeedTree is used, modelnode formats are a good deal different, and so on. One of the first steps in deciphering much of this is to look at the raw model dat...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In another page of rambling, this is dedicated to rendering notes about The Witcher (Wiedźmin).&lt;br /&gt;
&lt;br /&gt;
Witcher has a lot of rewrites from the base Aurora engine, and there&amp;#039;s a good deal that functions differently to e.g Neverwinter Nights. There&amp;#039;s a more expansive weathering system, it looks like shaders are more common, SpeedTree is used, modelnode formats are a good deal different, and so on. One of the first steps in deciphering much of this is to look at the raw model data and try to figure out what it shows, and then how to map it to the rendering system in xoreos.&lt;br /&gt;
&lt;br /&gt;
First of all, this is an obvious work in progress. There are a lot of unknowns. It&amp;#039;s not even certain if blending is always enabled (like with NWN), or if that was fixed: there isn&amp;#039;t an api trace of the rendering commands to know this. &lt;br /&gt;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
&lt;br /&gt;
Modelnodes have multiple defined textures. Generally there are &amp;quot;static&amp;quot; textures defined on a mesh. For the most part these are limited to four, with the first being a lightmap and the second being a diffuse colour. The others, if used, haven&amp;#039;t yet been studied. Some meshes don&amp;#039;t define a lightmap here, or any other texture - which leads into the second set of texture definitions.&lt;br /&gt;
&lt;br /&gt;
There are an additional set of texture descriptions which can either override or else supplement the static texture definitions. It&amp;#039;s likely these might bring shader attributes to the textures, and if a texture name isn&amp;#039;t specified outright, then it might just be a shader providing the information. This latter part is possibly what happens when no lightmap is specified in the static list, which is for example observed with the Kaer Morhen cobblestone areas. For those, a shader of &amp;quot;specular&amp;quot; is instead listed, which looks to use the alpha channel of the static diffuse texture for specular highlights (perhaps linked to weather effects).&lt;br /&gt;
&lt;br /&gt;
There is mesh data that has lightmaps without diffuse data. The reasons behind this are not yet known, and proper rendering information isn&amp;#039;t forthcoming yet. To make matters worse, some areas such as the mountains overlap with other meshes - but they are partial data and on their own won&amp;#039;t overlap everything. This again needs quite a lot of investigation (possibly SpeedTree related).&lt;br /&gt;
&lt;br /&gt;
Node naming, even including a full hierarchy in the name, is not unique. This is not related to LOD system which appears to exist - node (and so mesh) names simply aren&amp;#039;t unique! Mesh ids, however, appear to be and can be used to generate unique names for nodes (and meshes).&lt;br /&gt;
&lt;br /&gt;
== Lights ==&lt;br /&gt;
&lt;br /&gt;
Lighting information hasn&amp;#039;t been entirely decoded as of yet. Light nodes exist, and have controllers to dictate position (id 84), orientation (id 96), radius (id 340), colour (id 248), a bunch of other parameters. Not all parameters have yet been identified. It&amp;#039;s presumed that some related to basic lighting information such as constant, linear, and quadratic coefficients.&lt;br /&gt;
&lt;br /&gt;
The current theory (yet to be explored) is that while NWN calculates the quadratic component based on the light radius, Witcher might instead simply provide it and then use the radius for other purposes (e.g intersection tests).&lt;/div&gt;</summary>
		<author><name>Mirv</name></author>
	</entry>
</feed>