User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mapping:cawe:leaks [2007-06-09 14:10]
Carsten Added section Conclusion
mapping:cawe:leaks [2015-05-18 22:09] (current)
Line 6: Line 6:
 ===== What is a Leak? ===== ===== What is a Leak? =====
  
-Maps created for the Ca3D-Engine ​are preprocessed by several compile tools (e.g. CaBSP, CaPVS, CaLight) for optimal performance. These compile tools assume that any map has an inside (where the player and monsters are), and an outside that nobody except for the mapper will ever see. The inside must be //sealed "​air-tight"​ or "​water-tight"//​ from the outside. ​+Maps created for the Cafu engine ​are preprocessed by several compile tools (e.g. CaBSP, CaPVS, CaLight) for optimal performance. These compile tools assume that any map has an inside (where the player and monsters are), and an outside that nobody except for the mapper will ever see. The inside must be //sealed "​air-tight"​ or "​water-tight"//​ from the outside.
  
 That is, if you imagine you flood-filled the map from the inside with water or pressurized air, at no point must the water or air be able to escape to the outside. Therefore, each place where that would be possible is called a //leak//. That is, if you imagine you flood-filled the map from the inside with water or pressurized air, at no point must the water or air be able to escape to the outside. Therefore, each place where that would be possible is called a //leak//.
Line 55: Line 55:
  
 Sometimes leaks can also be caused by bad brushes like the one shown in this example (click image to enlarge). Sometimes leaks can also be caused by bad brushes like the one shown in this example (click image to enlarge).
-Such leaks are the most problematic:​ They are very hard to see visually, and they can get CaBSP thoroughly confused((If you ever experience such a case and cannot get it fixed by remaking the offending brushes, ​send an email to Carsten Fuchs for support. Please include the related map as an attachment.)).+Such leaks are the most problematic:​ They are very hard to see visually, and they can get CaBSP thoroughly confused((If you ever experience such a case and cannot get it fixed by remaking the offending brushes, ​[[http://​forum.cafu.de|let us know]]. Please include the related map as an attachment.)).
 Even worse, usually not much helps but deleting the offending brush, and make it anew with the [[mapping:​cawe:​editingtools:​newbrush|New Brush]] and other tools. Even worse, usually not much helps but deleting the offending brush, and make it anew with the [[mapping:​cawe:​editingtools:​newbrush|New Brush]] and other tools.
  
Line 72: Line 72:
  
 A leak is a hole in the world, where the inside of it is exposed to the A leak is a hole in the world, where the inside of it is exposed to the
-(unwanted) outside region. Thus, I generated ​a leak pointfile. +(unwanted) outside region. Thus, a leak pointfile ​has been generated
-Load this file into CaWE, and find the beginning of the line.+Load this file into the world editor ​CaWE, and find the beginning of the line.
 Hint: The beginning is always near one of the "​info_player_start"​ entities. Hint: The beginning is always near one of the "​info_player_start"​ entities.
 Then find and fix the leak by tracing the line until you reach the outside. Then find and fix the leak by tracing the line until you reach the outside.
-(always ​take the shortest path, so this should be easy.)+(The line always ​takes the shortest path, so this should be easy.)
  
 Notes: Notes:
Line 82: Line 82:
 - Use the grid. The grid is useful to fix leaks + to avoid them from the start. - Use the grid. The grid is useful to fix leaks + to avoid them from the start.
 - Make sure that *all* "​info_player_start"​ entities are inside the world! - Make sure that *all* "​info_player_start"​ entities are inside the world!
 +- Be aware that both the clip hull and the draw hull must be sealed.
 - Please refer to the documentation for additional information. - Please refer to the documentation for additional information.
  
Line 87: Line 88:
  
 FATAL ERROR: Stopped by leak. FATAL ERROR: Stopped by leak.
-Program aborted. ​+Program aborted.
 </​code>​ </​code>​
  
-That means that with a leak in the map, you cannot run the map at all. As CaBSP doesn'​t write any output file in this case (except for the above mentioned pointfile), neither the subsequent compilers (CaPVS and CaLight), nor the Ca3D-Engine ​itself can run the map.+That means that with a leak in the map, you cannot run the map at all. As CaBSP doesn'​t write any output file in this case (except for the above mentioned pointfile), neither the subsequent compilers (CaPVS and CaLight), nor the Cafu engine ​itself can run the map.
  
-Future versions of CaBSP may reduce the severity level of the occurrence of a leak from an error to a mere warning. This will allow you to run your map with Ca3DE even if it has leaks, but nonetheless will leaks remain a problem that should be fixed. Leaks always indicate that the map could not be optimally processed, and thus imply higher polygon counts and lower performance.+Future versions of CaBSP may reduce the severity level of the occurrence of a leak from an error to a mere warning. This will allow you to run your map with Cafu even if it has leaks, but nonetheless will leaks remain a problem that should be fixed. Leaks always indicate that the map could not be optimally processed, and thus imply higher polygon counts and lower performance.
  
 The next section will tell you how to find the leaks reported by CaBSP in the map. The next section will tell you how to find the leaks reported by CaBSP in the map.
Line 129: Line 130:
 ===== Conclusion ===== ===== Conclusion =====
  
-Being able to load the CaBSP-generated pointfiles directly into CaWE makes finding leaks relatively easy. However, one of the most important aspects about fixing leaks is to prevent them in the first place.+Being able to load the CaBSP-generated pointfiles directly into CaWE makes finding ​and fixing ​leaks relatively easy. However, one of the most important aspects about fixing leaks is to prevent them right from the start.
  
-Working carefully and making sure that brushes are properly aligned (snapped) to the grid can help significantly with eliminating ​leaks even before they occur. The cleaner and more organized you build your geometry, the easier will it be for you to not build them accidently into your map in the first place, and when they still occur, they are easier ​to locate and fix.+Working carefully and making sure that brushes are properly aligned (snapped) to the grid can help significantly with avoiding ​leaks even before they occur. The cleaner and more organized you build your geometry, the easier will it be for you to not build them accidently into your map in the first place, and when they still occur, ​the easier ​they are to locate and fix.
  
-In general, it's also a good idea to test-compile your map while it is only partially complete and still a work-in-progress. Besides that this will help you to fine-tune your geometry, it will also point out leaks one at a time, which makes finding and fixing a lot simpler and faster than later when your map is large and fully detailed.+In general, it's also a good idea to occasionally ​test-compile your map while it is only partially complete and still a work-in-progress. Besides that this will help you to fine-tune your geometry, it will also point out leaks one at a time, which makes finding and fixing a lot simpler and faster than later when your map is large and fully detailed. 
 + 
 + 
 +===== See Also ===== 
 + 
 +[[http://​www.cafu.de/​flash/​Dealing_with_Leaks.htm|{{:​starttutorial.png |Start Tutorial}}]] 
 + 
 +[[http://​www.cafu.de/​flash/​Dealing_with_Leaks.htm|Flash Tutorial]] -- A short flash tutorial that presents the essentials about dealing with leaks. 
 +<​clear>​
  
mapping/cawe/leaks.1181391001.txt.gz · Last modified: 2013-01-07 12:07 (external edit)