File: CastleMaterialProperties.TMaterialProperty.html

package info (click to toggle)
castle-game-engine 5.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 185,428 kB
  • sloc: pascal: 260,781; cpp: 1,363; objc: 713; makefile: 537; xml: 496; sh: 480; php: 4
file content (170 lines) | stat: -rw-r--r-- 11,674 bytes parent folder | download
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Castle Game Engine: CastleMaterialProperties: Class TMaterialProperty</title>
<meta name="generator" content="PasDoc 0.13.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="StyleSheet" type="text/css" href="pasdoc.css">
</head>
<body>
<table class="container"><tr><td class="navigation">
<h2>Castle Game Engine</h2><p><a href="introduction.html" class="navigation">Introduction</a></p><p><a href="AllUnits.html" class="navigation">Units</a></p><p><a href="ClassHierarchy.html" class="navigation">Class Hierarchy</a></p><p><a href="AllClasses.html" class="navigation">Classes, Interfaces, Objects and Records</a></p><p><a href="AllTypes.html" class="navigation">Types</a></p><p><a href="AllVariables.html" class="navigation">Variables</a></p><p><a href="AllConstants.html" class="navigation">Constants</a></p><p><a href="AllFunctions.html" class="navigation">Functions and Procedures</a></p><p><a href="AllIdentifiers.html" class="navigation">Identifiers</a></p></td><td class="content">
<a name="TMaterialProperty"></a><h1 class="cio">Class TMaterialProperty</h1>
<table class="sections wide_list">
<tr>
<td><a class="section" href="#PasDoc-Description">Description</a></td><td><a class="section" href="#PasDoc-Hierarchy">Hierarchy</a></td><td>Fields</td><td>Methods</td><td><a class="section" href="#PasDoc-Properties">Properties</a></td></tr></table>
<a name="PasDoc-Description"></a><h2 class="unit">Unit</h2>
<p class="unitlink">
<a  href="CastleMaterialProperties.html">CastleMaterialProperties</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TMaterialProperty = class(TObject)</code></p>
<h2 class="description">Description</h2>
<p>
Store information that is naturally associated with a given material or texture in an external file. Right now this allows to define things like footsteps, <a class="normal" href="CastleMaterialProperties.TMaterialProperty.html#Toxic">toxic</a> ground (hurts player), and bump mapping.

<p>In the future, it should be possible to express all these properties in pure VRML/X3D (inside Appearance / Material / ImageTexture nodes). Right now, you can do this with bump mapping, see <a  href="http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_bump_mapping">http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_bump_mapping</a> , but not footsteps or <a class="normal" href="CastleMaterialProperties.TMaterialProperty.html#Toxic">toxic</a> ground. In the future it should also be possible to express these properties in 3D authoring software (like Blender), and easily export them to appropriate VRML/X3D nodes. For now, this <code>TMaterialProperty</code> allows us to easily customize materials in a way that is not possible in Blender.

<p>Using an external file for material properties has also long-term advantages: it can be shared across many 3D models, for example you can define footsteps sound for all grounds using the <code>grass.png</code> textures, in all levels, at once.

<p>You have to load an XML file by setting <a class="normal" href="CastleMaterialProperties.TMaterialProperties.html#URL">MaterialProperties.URL</a> property.</p>
<a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
<ul class="hierarchy"><li class="ancestor">TObject</li>
<li class="thisitem">TMaterialProperty</li></ul><h2 class="overview">Overview</h2>
<a name="PasDoc-Properties"></a><h3 class="summary">Properties</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleMaterialProperties.TMaterialProperty.html#TextureBaseName">TextureBaseName</a></b>: string read FTextureBaseName write FTextureBaseName;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleMaterialProperties.TMaterialProperty.html#FootstepsSound">FootstepsSound</a></b>: <a  href="CastleSoundEngine.html#TSoundType">TSoundType</a> read FFootstepsSound write FFootstepsSound;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleMaterialProperties.TMaterialProperty.html#Toxic">Toxic</a></b>: boolean read FToxic write FToxic;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleMaterialProperties.TMaterialProperty.html#ToxicDamageConst">ToxicDamageConst</a></b>: Single read FToxicDamageConst write FToxicDamageConst;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleMaterialProperties.TMaterialProperty.html#ToxicDamageRandom">ToxicDamageRandom</a></b>: Single read FToxicDamageRandom write FToxicDamageRandom;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleMaterialProperties.TMaterialProperty.html#ToxicDamageTime">ToxicDamageTime</a></b>: Single read FToxicDamageTime write FToxicDamageTime;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleMaterialProperties.TMaterialProperty.html#NormalMap">NormalMap</a></b>: string read FNormalMap write FNormalMap;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleMaterialProperties.TMaterialProperty.html#AlphaChannel">AlphaChannel</a></b>: string read FAlphaChannel write FAlphaChannel;</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Properties</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="TextureBaseName"></a><code>property <b>TextureBaseName</b>: string read FTextureBaseName write FTextureBaseName;</code></td>
</tr>
<tr><td colspan="2">
<p>
Texture basename to associate this property will all appearances using given texture. For now, this is the only way to associate property, but more are possible in the future (like MaterialNodeName).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FootstepsSound"></a><code>property <b>FootstepsSound</b>: <a  href="CastleSoundEngine.html#TSoundType">TSoundType</a> read FFootstepsSound write FFootstepsSound;</code></td>
</tr>
<tr><td colspan="2">
<p>
Footsteps sound to make when player is walking on this material. <a class="normal" href="CastleSoundEngine.html#stNone">stNone</a> is no information is available.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Toxic"></a><code>property <b>Toxic</b>: boolean read FToxic write FToxic;</code></td>
</tr>
<tr><td colspan="2">
<p>
Is the floor <code>toxic</code> when walking on it. </p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="ToxicDamageConst"></a><code>property <b>ToxicDamageConst</b>: Single read FToxicDamageConst write FToxicDamageConst;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="ToxicDamageRandom"></a><code>property <b>ToxicDamageRandom</b>: Single read FToxicDamageRandom write FToxicDamageRandom;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="ToxicDamageTime"></a><code>property <b>ToxicDamageTime</b>: Single read FToxicDamageTime write FToxicDamageTime;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="NormalMap"></a><code>property <b>NormalMap</b>: string read FNormalMap write FNormalMap;</code></td>
</tr>
<tr><td colspan="2">
<p>
Normal map texture URL. This is a simple method to activate bump mapping, equivalent to using <code>normalMap</code> field in an Appearance node of VRML/X3D, see <a  href="http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_bump_mapping">http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_bump_mapping</a> .

<p>In case both VRML/X3D Appearance specifies <code>normalMap</code> and we have <code>NormalMap</code> defined here, the VRML/X3D Appearance is used.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="AlphaChannel"></a><code>property <b>AlphaChannel</b>: string read FAlphaChannel write FAlphaChannel;</code></td>
</tr>
<tr><td colspan="2">
<p>
Override alpha channel type for diffuse texture. The meaning and allowed values for this are the same as for <code>alphaChannel</code> field for texture nodes, see <a  href="http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_alpha_channel_detection">http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_alpha_channel_detection</a> . Empty value (default) doesn't change the alpha channel type (set in VRML/X3D or auto-detected).</p>
</td></tr>
</table>
<!-- Piwik -->
<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(["trackPageView"]);
  _paq.push(["enableLinkTracking"]);

  (function() {
    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://michalis.ii.uni.wroc.pl/piwik-castle-engine/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", "1"]);
    var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
    g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Piwik Code -->

<noscript>
<!-- Piwik Image Tracker -->
<img src="http://michalis.ii.uni.wroc.pl/piwik-castle-engine/piwik.php?idsite=1&amp;rec=1" style="border:0" alt="" />
<!-- End Piwik -->
</noscript>
<hr noshade size="1"><span class="appinfo"><em>Generated by <a  href="http://pasdoc.sourceforge.net/">PasDoc 0.13.0</a> on 2015-06-15 04:43:10</em>
</span>
</td></tr></table></body></html>