<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://omnicide.razorwind.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://omnicide.razorwind.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=Tutorials%3AUnderstanding_a_VIS_and_Hint_brushes</id>
		<title>Tutorials:Understanding a VIS and Hint brushes - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://omnicide.razorwind.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=Tutorials%3AUnderstanding_a_VIS_and_Hint_brushes"/>
		<link rel="alternate" type="text/html" href="http://omnicide.razorwind.ru/wiki/index.php?title=Tutorials:Understanding_a_VIS_and_Hint_brushes&amp;action=history"/>
		<updated>2026-05-15T11:00:14Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.1</generator>

	<entry>
		<id>http://omnicide.razorwind.ru/wiki/index.php?title=Tutorials:Understanding_a_VIS_and_Hint_brushes&amp;diff=2906&amp;oldid=prev</id>
		<title>VorteX at 01:26, 23 November 2012</title>
		<link rel="alternate" type="text/html" href="http://omnicide.razorwind.ru/wiki/index.php?title=Tutorials:Understanding_a_VIS_and_Hint_brushes&amp;diff=2906&amp;oldid=prev"/>
				<updated>2012-11-23T01:26:35Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 01:26, 23 November 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{imported|Nick &amp;quot;jex&amp;quot; Jansens|http://tremmapping.pbworks.com/w/page/22453205/Understanding%20Vis%20and%20Hint%20Brushes}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{imported|Nick &amp;quot;jex&amp;quot; Jansens|http://tremmapping.pbworks.com/w/page/22453205/Understanding%20Vis%20and%20Hint%20Brushes}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{TOCRIGHT}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Basic Vis Theory==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Basic Vis Theory==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>VorteX</name></author>	</entry>

	<entry>
		<id>http://omnicide.razorwind.ru/wiki/index.php?title=Tutorials:Understanding_a_VIS_and_Hint_brushes&amp;diff=2646&amp;oldid=prev</id>
		<title>VorteX: /* See also */</title>
		<link rel="alternate" type="text/html" href="http://omnicide.razorwind.ru/wiki/index.php?title=Tutorials:Understanding_a_VIS_and_Hint_brushes&amp;diff=2646&amp;oldid=prev"/>
				<updated>2012-09-03T05:35:31Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;See also&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 05:35, 3 September 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 99:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 99:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==See also==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==See also==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[VIS]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[VIS]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[PVS&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;|Potentially viewable set&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* [[PVS]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{finished}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{finished}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>VorteX</name></author>	</entry>

	<entry>
		<id>http://omnicide.razorwind.ru/wiki/index.php?title=Tutorials:Understanding_a_VIS_and_Hint_brushes&amp;diff=2588&amp;oldid=prev</id>
		<title>VorteX: /* Creating Hint Brushes */</title>
		<link rel="alternate" type="text/html" href="http://omnicide.razorwind.ru/wiki/index.php?title=Tutorials:Understanding_a_VIS_and_Hint_brushes&amp;diff=2588&amp;oldid=prev"/>
				<updated>2012-08-09T15:49:00Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Creating Hint Brushes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:49, 9 August 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 93:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 93:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Creating Hint Brushes==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Creating Hint Brushes==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Hint brushes are created by making a regular brush and simply applying the '''&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;textures/&lt;/del&gt;common/hint''' material to it.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Hint brushes are created by making a regular brush and simply applying the '''common/hint''' material to it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;When optimising the Vis horizontally, ensure that your Hint Brushes fully extended from the bottom of a room to the top to prevent any unnecessary straight paths between portals from existing either above or below your Hint Brushes. The same applies when optimising the Vis vertically. Ensure that your Hint Brushes fully extend from Structural wall to Structural wall.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;When optimising the Vis horizontally, ensure that your Hint Brushes fully extended from the bottom of a room to the top to prevent any unnecessary straight paths between portals from existing either above or below your Hint Brushes. The same applies when optimising the Vis vertically. Ensure that your Hint Brushes fully extend from Structural wall to Structural wall.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>VorteX</name></author>	</entry>

	<entry>
		<id>http://omnicide.razorwind.ru/wiki/index.php?title=Tutorials:Understanding_a_VIS_and_Hint_brushes&amp;diff=2582&amp;oldid=prev</id>
		<title>VorteX: Created page with &quot;{{imported|Nick &quot;jex&quot; Jansens|http://tremmapping.pbworks.com/w/page/22453205/Understanding%20Vis%20and%20Hint%20Brushes}}  ==Basic Vis Theory== When ''q3map2'' compiles a map,...&quot;</title>
		<link rel="alternate" type="text/html" href="http://omnicide.razorwind.ru/wiki/index.php?title=Tutorials:Understanding_a_VIS_and_Hint_brushes&amp;diff=2582&amp;oldid=prev"/>
				<updated>2012-08-09T15:22:39Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{imported|Nick &amp;quot;jex&amp;quot; Jansens|http://tremmapping.pbworks.com/w/page/22453205/Understanding%20Vis%20and%20Hint%20Brushes}}  ==Basic Vis Theory== When &amp;#039;&amp;#039;q3map2&amp;#039;&amp;#039; compiles a map,...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{imported|Nick &amp;quot;jex&amp;quot; Jansens|http://tremmapping.pbworks.com/w/page/22453205/Understanding%20Vis%20and%20Hint%20Brushes}}&lt;br /&gt;
&lt;br /&gt;
==Basic Vis Theory==&lt;br /&gt;
When ''q3map2'' compiles a map, it cuts it up into vis &amp;quot;portals&amp;quot;. These portals may be as big as a room, or as small as only a few units big, depending on how you build your map. The vis process is entirely dependant on these portals. The compiler will look at each individual portal, and attempt to draw a straight line from any point within that portal to any point with every other portal in the map. If a line can be drawn from Portal A to even the furthest edge of Portal B, everything within Portal B will be rendered by the engine while the player is anywhere within Portal A.&lt;br /&gt;
&lt;br /&gt;
Hint brushes can be used to divide the default vis portals into smaller more efficient shapes to help reduce the amount of polygons the engine is rendering that can not actually be seen by the player.&lt;br /&gt;
&lt;br /&gt;
==Visual Vis Theory==&lt;br /&gt;
Here is a typical example of how ''q3map2'' creates vis portals:&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-1_a.jpg|alt=|link=]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example Player's line of sight is limited to Rooms A and B but the engine is still rendering Room C. &lt;br /&gt;
&lt;br /&gt;
This is because Room C can be seen from a small part of the vis portal Player is in:&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-1_b.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here Player's line of sight still includes both Room A and B but Room C is no longer being drawn by the engine. &lt;br /&gt;
&lt;br /&gt;
This is because a straight line cannot be made from Player's current vis portal to that of Room C without intersecting with Structural Brushes.&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-1_c.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
Now the Player's line of sight no longer includes Room B but because Player is still within the same vis portal to which Room B is visible the engine continues to do the work of rendering it:&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-1_d.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Optimising Vis with Hint Brushes==&lt;br /&gt;
Here is the same example with hint brushes added to optimise the Vis:&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-2_a.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We can see here that while everything in Player's line of sight is still being rendered, because of the addition of Hint Brushes, now Rooms A and C are no longer being needlessly rendered.&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-2_b.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example Hint Brushes are preventing the engine from rendering Room B:&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-2_c.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
With Player in Room C the Hint Brushes limit the amount of the hallway between Rooms A and B that the engine has to render.&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-2_d.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Improper Hint Brush use==&lt;br /&gt;
Here is the same example with improper hint brushes added:&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-3_a.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Where with proper hinting Rooms A and C can be completely cut out of the Vis, here only a small corner of Room C is not being rendered. The concave angles of the hint brushes between Player and Room C has allowed a straight path to exists between Player's vis portal and that of Room C resulting in almost the entire room being rendered. Between Player and Room A the hint brush doesn't touch the inside corner of the hallway and Room A is also rendered by the engine.&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-3_b.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As in the previous example, the same problem exists from around the corner where the hint brush allows a straight line to exist between Player's vis portal and that of Room &lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-3_c.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the results are less severe, but still unnecessary.&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-3_d.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Irregular Hint Brush use==&lt;br /&gt;
In this example the hinting is done somewhat irregularly but still with good results. Some cases will call for more irregular hinting.&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-4_a.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As before Rooms A and C are not being rendered. It is okay for the Hint Brushes to overlap Structural Brushes or to create a convex line with other hint brushes. (Note: because the engine does not allow concave volumes to exist, the overlap of the Hint Brush and Structural Brushes between Player and Room A would cause at least 2 vis portals to be created within the Hint Brush. This will not reduce its effectiveness.)&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-4_b.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here again the Hint Brush between Player and Room B performs adequately if not optimally.&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-4_c.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As before the Hint Brushes limit the amount of the hallway between Rooms A and B that the engine has to render but with slightly inferior results.&lt;br /&gt;
&lt;br /&gt;
[[File:tutorial_understanding_vis_fig-4_d.jpg|alt=|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating Hint Brushes==&lt;br /&gt;
Hint brushes are created by making a regular brush and simply applying the '''textures/common/hint''' material to it.&lt;br /&gt;
 &lt;br /&gt;
When optimising the Vis horizontally, ensure that your Hint Brushes fully extended from the bottom of a room to the top to prevent any unnecessary straight paths between portals from existing either above or below your Hint Brushes. The same applies when optimising the Vis vertically. Ensure that your Hint Brushes fully extend from Structural wall to Structural wall.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[VIS]]&lt;br /&gt;
* [[PVS|Potentially viewable set]]&lt;br /&gt;
&lt;br /&gt;
{{finished}}&lt;/div&gt;</summary>
		<author><name>VorteX</name></author>	</entry>

	</feed>