This file is indexed.

/usr/share/doc/colobot/html/models.html is in colobot-dev-doc 0.1.11-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Colobot: Models</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Colobot
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">Models </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Model formats and associated issues are described briefly for graphics designers and developers.</p>
<h1><a class="anchor" id="format"></a>
Model format</h1>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000020">Todo:</a></b></dt><dd>Update for the new model format</dd></dl>
<p>Colobot models are basically a collection of triangles with some associated data. <span style="text-decoration: line-through;">In the code, the class <a class="el" href="class_gfx_1_1_c_model.html" title="3D model saved in model file ">Gfx::CModel</a> (src/graphics/model/model.h) is responsible for reading/writing model files.</span> Each triangle of model contains the information as stored in <a class="el" href="struct_gfx_1_1_model_triangle.html" title="A single triangle in mesh as saved in model file. ">Gfx::ModelTriangle</a> struct defined in model_triangle.h header, that is:</p><ul>
<li>3 triangle points (coordinates, normals, UV texture coordinates for 2 textures)</li>
<li>material (ambient, diffuse, specular colors)</li>
<li>file names for 1st and 2nd texture (or, for 2nd texture - variable flag)</li>
<li>rendering state</li>
<li><span style="text-decoration: line-through;">min and max values of LOD (= level of details)</span></li>
</ul>
<h2><a class="anchor" id="textures"></a>
Textures</h2>
<p>1st texture is always static - the assigned image name.</p>
<p>2nd texture can be set explicitly in 2nd texture name, with variable flag set to false. It is then static as 1st texture.</p>
<p>But if variable flag is set, the texture will be applied dynamically by the graphics engine. It will be one of dirtyXX.png textures, depending on current setup.</p>
<h2><a class="anchor" id="renderstates"></a>
Rendering states</h2>
<p>Rendering state is one of <a class="el" href="class_gfx_1_1_c_engine.html" title="The graphics engine. ">Gfx::CEngine</a>'s rendering states, that is a mask of enum <a class="el" href="namespace_gfx.html#a8abfa5a2ef7ca36edb2429b1ad2a740d" title="Render state of graphics engine. ">Gfx::EngineRenderState</a> values from <a class="el" href="engine_8h.html" title="Main graphics engine - CEngine class. ">src/graphics/engine/engine.h</a>.</p>
<p>For most purposes, the default render (<a class="el" href="namespace_gfx.html#a8abfa5a2ef7ca36edb2429b1ad2a740daaecb91afecb6c3a3b5293bbfa41f4395" title="Normal opaque materials. ">Gfx::ENG_RSTATE_NORMAL</a> = 0) state will be sufficient. This state enables regular one-texture rendering.</p>
<p>To use 2nd texture, set one of <a class="el" href="namespace_gfx.html#a8abfa5a2ef7ca36edb2429b1ad2a740da81dbe6297da7c7d127dc4031c2114083" title="Double black texturing. ">Gfx::ENG_RSTATE_DUAL_BLACK</a> or <a class="el" href="namespace_gfx.html#a8abfa5a2ef7ca36edb2429b1ad2a740daef35896c16f26299a262107cbc725a84" title="Double white texturing. ">Gfx::ENG_RSTATE_DUAL_WHITE</a> states. Other states, enabling specific behavior may be used in rare cases.</p>
<h2><a class="anchor" id="lod"></a>
Min and max LOD</h2>
<p><span style="text-decoration: line-through;">LOD is used to display different model triangles based on distance to viewer. The given triangle will only be displayed if the distance is within bounds [min, max].</span></p>
<p><span style="text-decoration: line-through;">For now, use standard definitions of min and max which fall into 3 categories:</span></p><ul>
<li><span style="text-decoration: line-through;">min = 0, max = 100 - max detail</span></li>
<li><span style="text-decoration: line-through;">min = 100, max = 200 - medium detail</span></li>
<li><span style="text-decoration: line-through;">min = 200, max = 1 000 000 - low detail</span></li>
</ul>
<h1><a class="anchor" id="fileformats"></a>
File formats</h1>
<p>There are currently 3 file formats recognized by <a class="el" href="namespace_gfx_1_1_model_input.html" title="Functions related to model loading. ">Gfx::ModelInput</a> and <a class="el" href="namespace_gfx_1_1_model_output.html" title="Functions related to model saving. ">Gfx::ModelOutput</a>:</p><ul>
<li>old binary format (in 3 versions, though mostly only the 3rd one is used) - this is the format of original model files; it is deprecated now and will be removed in the future</li>
<li>new text format - preferred for now, as it is easy to handle and convert to other formats as necessary</li>
<li>new binary format - contains the same information as new text format</li>
</ul>
<h1><a class="anchor" id="blenderimport"></a>
Import/export in Blender</h1>
<p>The plugin to import and export models in Blender is contained in <code>tools/blender-scipts.py</code>. To use it, install it as per instructions <a href="http://wiki.blender.org/index.php/Doc:2.6/Manual/Extensions/Python/Add-Ons">on Blender wiki</a>. It will register new menu entries under File -&gt; Import and File -&gt; Export. Import is always active, but to export, you have to select a mesh object first.</p>
<p>Textures are loaded from the same directory as the model file.</p>
<p>Additional data like state, variable texture flag and min and max LOD can be given as user attributes.</p>
<p>If you have any problems, please contact <b>piotrdz</b> on ICC forum or IRC channels. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>