File: CastleScene.TSceneRenderingAttributes.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 (567 lines) | stat: -rw-r--r-- 38,973 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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
<!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: CastleScene: Class TSceneRenderingAttributes</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="TSceneRenderingAttributes"></a><h1 class="cio">Class TSceneRenderingAttributes</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><a class="section" href="#PasDoc-Fields">Fields</a></td><td><a class="section" href="#PasDoc-Methods">Methods</a></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="CastleScene.html">CastleScene</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TSceneRenderingAttributes = class(<a class="normal" href="CastleRenderer.TRenderingAttributes.html">TRenderingAttributes</a>)</code></p>
<h2 class="description">Description</h2>
<div class="nodescription">no description available, TRenderingAttributes description follows</div><p>
Various properties that control rendering done with <a class="normal" href="CastleRenderer.TGLRenderer.html">TGLRenderer</a>.

<p>They are collected here, in a class separate from <a class="normal" href="CastleRenderer.TGLRenderer.html">TGLRenderer</a>, because various things (like <a class="normal" href="CastleScene.TCastleScene.html">TCastleScene</a> and <a class="normal" href="CastlePrecalculatedAnimation.TCastlePrecalculatedAnimation.html">TCastlePrecalculatedAnimation</a>) wrap <a class="normal" href="CastleRenderer.TGLRenderer.html">TGLRenderer</a> instances and hide it, but still they want to allow user to change these attributes.</p>
<a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
<ul class="hierarchy"><li class="ancestor">TPersistent</li>
<li class="ancestor"><a class="normal" href="CastleRenderer.TRenderingAttributes.html">TRenderingAttributes</a></li>
<li class="thisitem">TSceneRenderingAttributes</li></ul><h2 class="overview">Overview</h2>
<a name="PasDoc-Fields"></a><h3 class="summary">Fields</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>internal const <b><a  href="CastleScene.TSceneRenderingAttributes.html#DefaultBlendingSourceFactor">DefaultBlendingSourceFactor</a></b> = GL_SRC_ALPHA;</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>internal const <b><a  href="CastleScene.TSceneRenderingAttributes.html#DefaultBlendingDestinationFactor">DefaultBlendingDestinationFactor</a></b> = GL_ONE_MINUS_SRC_ALPHA;</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>internal const <b><a  href="CastleScene.TSceneRenderingAttributes.html#DefaultBlendingSort">DefaultBlendingSort</a></b> = bsNone;</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>internal const <b><a  href="CastleScene.TSceneRenderingAttributes.html#DefaultWireframeColor">DefaultWireframeColor</a></b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> = (0, 0, 0);</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>internal const <b><a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSolidWireframeScale">DefaultSolidWireframeScale</a></b> = 1;</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>internal const <b><a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSolidWireframeBias">DefaultSolidWireframeBias</a></b> = 1;</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>internal const <b><a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSilhouetteScale">DefaultSilhouetteScale</a></b> = 5;</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>internal const <b><a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSilhouetteBias">DefaultSilhouetteBias</a></b> = 5;</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>var <b><a  href="CastleScene.TSceneRenderingAttributes.html#OnCreate">OnCreate</a></b>: <a  href="CastleScene.html#TRenderingAttributesEvent">TRenderingAttributesEvent</a>; static;</code></td>
</tr>
</table>
<a name="PasDoc-Methods"></a><h3 class="summary">Methods</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleScene.TSceneRenderingAttributes.html#ReleaseCachedResources">ReleaseCachedResources</a></b>; override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleScene.TSceneRenderingAttributes.html#SetBlending">SetBlending</a></b>(const Value: boolean); virtual;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleScene.TSceneRenderingAttributes.html#SetBlendingSourceFactor">SetBlendingSourceFactor</a></b>(const Value: <a  href="CastleGLUtils.html#TGLenum">TGLenum</a>); virtual;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleScene.TSceneRenderingAttributes.html#SetBlendingDestinationFactor">SetBlendingDestinationFactor</a></b>(const Value: <a  href="CastleGLUtils.html#TGLenum">TGLenum</a>); virtual;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleScene.TSceneRenderingAttributes.html#SetBlendingSort">SetBlendingSort</a></b>(const Value: <a  href="CastleScene.html#TBlendingSort">TBlendingSort</a>); virtual;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleScene.TSceneRenderingAttributes.html#SetControlBlending">SetControlBlending</a></b>(const Value: boolean); virtual;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleScene.TSceneRenderingAttributes.html#SetUseOcclusionQuery">SetUseOcclusionQuery</a></b>(const Value: boolean); virtual;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleScene.TSceneRenderingAttributes.html#SetShaders">SetShaders</a></b>(const Value: <a  href="CastleRenderer.html#TShadersRendering">TShadersRendering</a>); override;</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>constructor <b><a  href="CastleScene.TSceneRenderingAttributes.html#Create">Create</a></b>; override;</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>destructor <b><a  href="CastleScene.TSceneRenderingAttributes.html#Destroy">Destroy</a></b>; override;</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>procedure <b><a  href="CastleScene.TSceneRenderingAttributes.html#Assign">Assign</a></b>(Source: TPersistent); override;</code></td>
</tr>
</table>
<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="CastleScene.TSceneRenderingAttributes.html#Blending">Blending</a></b>: boolean
      read FBlending write <a  href="CastleScene.TSceneRenderingAttributes.html#SetBlending">SetBlending</a> default true;</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="CastleScene.TSceneRenderingAttributes.html#BlendingSourceFactor">BlendingSourceFactor</a></b>: <a  href="CastleGLUtils.html#TGLenum">TGLenum</a>
      read FBlendingSourceFactor write <a  href="CastleScene.TSceneRenderingAttributes.html#SetBlendingSourceFactor">SetBlendingSourceFactor</a>
      default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultBlendingSourceFactor">DefaultBlendingSourceFactor</a>;</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="CastleScene.TSceneRenderingAttributes.html#BlendingDestinationFactor">BlendingDestinationFactor</a></b>: <a  href="CastleGLUtils.html#TGLenum">TGLenum</a>
      read FBlendingDestinationFactor write <a  href="CastleScene.TSceneRenderingAttributes.html#SetBlendingDestinationFactor">SetBlendingDestinationFactor</a>
      default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultBlendingDestinationFactor">DefaultBlendingDestinationFactor</a>;</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="CastleScene.TSceneRenderingAttributes.html#BlendingSort">BlendingSort</a></b>: <a  href="CastleScene.html#TBlendingSort">TBlendingSort</a>
      read FBlendingSort write <a  href="CastleScene.TSceneRenderingAttributes.html#SetBlendingSort">SetBlendingSort</a>
      default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultBlendingSort">DefaultBlendingSort</a>;</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="CastleScene.TSceneRenderingAttributes.html#ControlBlending">ControlBlending</a></b>: boolean
      read FControlBlending write <a  href="CastleScene.TSceneRenderingAttributes.html#SetControlBlending">SetControlBlending</a> default true;</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="CastleScene.TSceneRenderingAttributes.html#WireframeEffect">WireframeEffect</a></b>: <a  href="CastleScene.html#TWireframeEffect">TWireframeEffect</a>
      read FWireframeEffect write FWireframeEffect default weNormal;</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="CastleScene.TSceneRenderingAttributes.html#SolidWireframeScale">SolidWireframeScale</a></b>: Single read FSolidWireframeScale write FSolidWireframeScale default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSolidWireframeScale">DefaultSolidWireframeScale</a>;</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="CastleScene.TSceneRenderingAttributes.html#SolidWireframeBias">SolidWireframeBias</a></b>: Single read FSolidWireframeBias write FSolidWireframeBias default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSolidWireframeBias">DefaultSolidWireframeBias</a>;</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="CastleScene.TSceneRenderingAttributes.html#SilhouetteScale">SilhouetteScale</a></b>: Single read FSilhouetteScale write FSilhouetteScale default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSilhouetteScale">DefaultSilhouetteScale</a>;</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="CastleScene.TSceneRenderingAttributes.html#SilhouetteBias">SilhouetteBias</a></b>: Single read FSilhouetteBias write FSilhouetteBias default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSilhouetteBias">DefaultSilhouetteBias</a>;</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="CastleScene.TSceneRenderingAttributes.html#WireframeColor">WireframeColor</a></b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>
      read FWireframeColor write FWireframeColor;</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="CastleScene.TSceneRenderingAttributes.html#UseOcclusionQuery">UseOcclusionQuery</a></b>: boolean
      read FUseOcclusionQuery write <a  href="CastleScene.TSceneRenderingAttributes.html#SetUseOcclusionQuery">SetUseOcclusionQuery</a> default false;</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="CastleScene.TSceneRenderingAttributes.html#UseHierarchicalOcclusionQuery">UseHierarchicalOcclusionQuery</a></b>: boolean
      read FUseHierarchicalOcclusionQuery
      write FUseHierarchicalOcclusionQuery default false;</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="CastleScene.TSceneRenderingAttributes.html#DebugHierOcclusionQueryResults">DebugHierOcclusionQueryResults</a></b>: boolean
      read FDebugHierOcclusionQueryResults
      write FDebugHierOcclusionQueryResults default false;</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Fields</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="DefaultBlendingSourceFactor"></a><code>internal const <b>DefaultBlendingSourceFactor</b> = GL_SRC_ALPHA;</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="DefaultBlendingDestinationFactor"></a><code>internal const <b>DefaultBlendingDestinationFactor</b> = GL_ONE_MINUS_SRC_ALPHA;</code></td>
</tr>
<tr><td colspan="2">
<p>
Default value of Attributes.BlendingDestinationFactor. See <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#BlendingDestinationFactor">TSceneRenderingAttributes.BlendingDestinationFactor</a>.

<p>Using ONE_MINUS_SRC_ALPHA is the standard value for 3D graphic stuff, often producing best results. However, it causes troubles when multiple transparent shapes are visible on the same screen pixel. For closed convex 3D objects, using backface culling (solid = TRUE for geometry) helps. For multiple transparent shapes, sorting the transparent shapes helps, see <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#BlendingSort">TSceneRenderingAttributes.BlendingSort</a>. Sometimes, no solution works for all camera angles.

<p>Another disadvantage of ONE_MINUS_SRC_ALPHA may be that the color of opaque shapes disappears too quickly from resulting image (since GL_ONE_MINUS_SRC_ALPHA scales it down). So the image may be darker than you like.

<p>You can instead consider using GL_ONE, that doesn't require sorting and never has problems with multiple transparent shapes. On the other hand, it only adds to the color, often making too bright results.</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="DefaultBlendingSort"></a><code>internal const <b>DefaultBlendingSort</b> = bsNone;</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="DefaultWireframeColor"></a><code>internal const <b>DefaultWireframeColor</b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> = (0, 0, 0);</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="DefaultSolidWireframeScale"></a><code>internal const <b>DefaultSolidWireframeScale</b> = 1;</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="DefaultSolidWireframeBias"></a><code>internal const <b>DefaultSolidWireframeBias</b> = 1;</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="DefaultSilhouetteScale"></a><code>internal const <b>DefaultSilhouetteScale</b> = 5;</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="DefaultSilhouetteBias"></a><code>internal const <b>DefaultSilhouetteBias</b> = 5;</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="OnCreate"></a><code>var <b>OnCreate</b>: <a  href="CastleScene.html#TRenderingAttributesEvent">TRenderingAttributesEvent</a>; static;</code></td>
</tr>
<tr><td colspan="2">
<p>
Adjust attributes of all loaded resources.</p>
</td></tr>
</table>
<h3 class="detail">Methods</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="ReleaseCachedResources"></a><code>procedure <b>ReleaseCachedResources</b>; override;</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="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="SetBlending"></a><code>procedure <b>SetBlending</b>(const Value: boolean); virtual;</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="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="SetBlendingSourceFactor"></a><code>procedure <b>SetBlendingSourceFactor</b>(const Value: <a  href="CastleGLUtils.html#TGLenum">TGLenum</a>); virtual;</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="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="SetBlendingDestinationFactor"></a><code>procedure <b>SetBlendingDestinationFactor</b>(const Value: <a  href="CastleGLUtils.html#TGLenum">TGLenum</a>); virtual;</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="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="SetBlendingSort"></a><code>procedure <b>SetBlendingSort</b>(const Value: <a  href="CastleScene.html#TBlendingSort">TBlendingSort</a>); virtual;</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="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="SetControlBlending"></a><code>procedure <b>SetControlBlending</b>(const Value: boolean); virtual;</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="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="SetUseOcclusionQuery"></a><code>procedure <b>SetUseOcclusionQuery</b>(const Value: boolean); virtual;</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="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="SetShaders"></a><code>procedure <b>SetShaders</b>(const Value: <a  href="CastleRenderer.html#TShadersRendering">TShadersRendering</a>); override;</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="Create"></a><code>constructor <b>Create</b>; override;</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="Destroy"></a><code>destructor <b>Destroy</b>; override;</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="Assign"></a><code>procedure <b>Assign</b>(Source: TPersistent); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<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="Blending"></a><code>property <b>Blending</b>: boolean
      read FBlending write <a  href="CastleScene.TSceneRenderingAttributes.html#SetBlending">SetBlending</a> default true;</code></td>
</tr>
<tr><td colspan="2">
<p>
Render partially transparent objects.

<p>More precisely: if this is <code>True</code>, all shapes with transparent materials or textures with non-trivial (not only yes/no) alpha channel will be rendered using OpenGL blending (with depth test off, like they should for OpenGL).

<p>If this attribute is <code>False</code>, everything will be rendered as opaque.</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="BlendingSourceFactor"></a><code>property <b>BlendingSourceFactor</b>: <a  href="CastleGLUtils.html#TGLenum">TGLenum</a>
      read FBlendingSourceFactor write <a  href="CastleScene.TSceneRenderingAttributes.html#SetBlendingSourceFactor">SetBlendingSourceFactor</a>
      default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultBlendingSourceFactor">DefaultBlendingSourceFactor</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Blending function parameters, used when <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#Blending">Blending</a>. See OpenGL documentation of glBlendFunc for possible values here.

<p>See also <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#DefaultBlendingDestinationFactor">DefaultBlendingDestinationFactor</a> for comments about GL_ONE and GL_ONE_MINUS_SRC_ALPHA.

<p>Note that this is only a default, VRML/X3D model can override this for specific shapes by using our extension BlendMode node. See [<a  href="http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_blending">http://castle-engine.sourceforge.net/x3d_extensions.php#section_ext_blending</a>].

<p>Note that <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#BlendingSort">BlendingSort</a> may be overridden is a specific 3D models by using NavigationInfo node with <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#BlendingSort">blendingSort</a> field, see <a class="normal" href="X3DNodes.TNavigationInfoNode.html#BlendingSort">TNavigationInfoNode.BlendingSort</a>.

<p></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="BlendingDestinationFactor"></a><code>property <b>BlendingDestinationFactor</b>: <a  href="CastleGLUtils.html#TGLenum">TGLenum</a>
      read FBlendingDestinationFactor write <a  href="CastleScene.TSceneRenderingAttributes.html#SetBlendingDestinationFactor">SetBlendingDestinationFactor</a>
      default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultBlendingDestinationFactor">DefaultBlendingDestinationFactor</a>;</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="BlendingSort"></a><code>property <b>BlendingSort</b>: <a  href="CastleScene.html#TBlendingSort">TBlendingSort</a>
      read FBlendingSort write <a  href="CastleScene.TSceneRenderingAttributes.html#SetBlendingSort">SetBlendingSort</a>
      default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultBlendingSort">DefaultBlendingSort</a>;</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="ControlBlending"></a><code>property <b>ControlBlending</b>: boolean
      read FControlBlending write <a  href="CastleScene.TSceneRenderingAttributes.html#SetControlBlending">SetControlBlending</a> default true;</code></td>
</tr>
<tr><td colspan="2">
<p>
Setting this to <code>False</code> disables any modification of OpenGL blending (and depth mask) state by <a class="normal" href="CastleScene.TCastleScene.html">TCastleScene</a>. This makes every other <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#Blending">Blending</a> setting ignored, and is useful only if you set your own OpenGL blending parameters when rendering this scene.</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="WireframeEffect"></a><code>property <b>WireframeEffect</b>: <a  href="CastleScene.html#TWireframeEffect">TWireframeEffect</a>
      read FWireframeEffect write FWireframeEffect default weNormal;</code></td>
</tr>
<tr><td colspan="2">
<p>
You can use this to turn on some effects related to rendering model in special modes.

<p>When this is weNormal (default), nothing special is done, which means that model polygons are simply passed to OpenGL. Whether this results in filled or wireframe, depends on OpenGL glPolygonMode setting, filled by default.

<p>How the wireframe effects work when Mode = rmDepth is undefined now. Just don't use Mode = rmDepth if you're unsure.

<p>See description of <a class="normal" href="CastleScene.html#TWireframeEffect">TWireframeEffect</a> for what other modes do.</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="SolidWireframeScale"></a><code>property <b>SolidWireframeScale</b>: Single read FSolidWireframeScale write FSolidWireframeScale default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSolidWireframeScale">DefaultSolidWireframeScale</a>;</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="SolidWireframeBias"></a><code>property <b>SolidWireframeBias</b>: Single read FSolidWireframeBias write FSolidWireframeBias default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSolidWireframeBias">DefaultSolidWireframeBias</a>;</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="SilhouetteScale"></a><code>property <b>SilhouetteScale</b>: Single read FSilhouetteScale write FSilhouetteScale default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSilhouetteScale">DefaultSilhouetteScale</a>;</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="SilhouetteBias"></a><code>property <b>SilhouetteBias</b>: Single read FSilhouetteBias write FSilhouetteBias default <a  href="CastleScene.TSceneRenderingAttributes.html#DefaultSilhouetteBias">DefaultSilhouetteBias</a>;</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="WireframeColor"></a><code>property <b>WireframeColor</b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>
      read FWireframeColor write FWireframeColor;</code></td>
</tr>
<tr><td colspan="2">
<p>
Wireframe color, used with some <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#WireframeEffect">WireframeEffect</a> values. Default value is <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#DefaultWireframeColor">DefaultWireframeColor</a>.</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="UseOcclusionQuery"></a><code>property <b>UseOcclusionQuery</b>: boolean
      read FUseOcclusionQuery write <a  href="CastleScene.TSceneRenderingAttributes.html#SetUseOcclusionQuery">SetUseOcclusionQuery</a> default false;</code></td>
</tr>
<tr><td colspan="2">
<p>
Should we use ARB_occlusion_query (if available) to avoid rendering shapes that didn't pass occlusion test in previous frame. Ignored if GPU doesn't support ARB_occlusion_query.

<p><code>True</code> may give you a large speedup in some scenes. OTOH, a lag of one frame may happen between an object should be rendered and it actually appears.

<p>When you render more than once the same instance of <a class="normal" href="CastleScene.TCastleScene.html">TCastleScene</a> scene, you should not activate it (as the occlusion query doesn't make sense if each following render of the scene takes place at totally different translation). Also, when rendering something more than just one <a class="normal" href="CastleScene.TCastleScene.html">TCastleScene</a> scene (maybe many times the same <a class="normal" href="CastleScene.TCastleScene.html">TCastleScene</a> instance, maybe many different <a class="normal" href="CastleScene.TCastleScene.html">TCastleScene</a> instances, maybe some other 3D objects) you should try to sort rendering order from the most to the least possible occluder (otherwise occlusion query will not be as efficient at culling).

<p>This is ignored if <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#UseHierarchicalOcclusionQuery">UseHierarchicalOcclusionQuery</a>.</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="UseHierarchicalOcclusionQuery"></a><code>property <b>UseHierarchicalOcclusionQuery</b>: boolean
      read FUseHierarchicalOcclusionQuery
      write FUseHierarchicalOcclusionQuery default false;</code></td>
</tr>
<tr><td colspan="2">
<p>
Should we use ARB_occlusion_query (if available) with a hierarchical algorithm to avoid rendering shapes that didn't pass occlusion test in previous frame. Ignored if GPU doesn't support ARB_occlusion_query.

<p><code>True</code> may give you a large speedup in some scenes.

<p>This method doesn't impose any lag of one frame (like <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#UseOcclusionQuery">UseOcclusionQuery</a>).

<p>This requires the usage of <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#OctreeRendering">TCastleSceneCore.OctreeRendering</a>. Also, it always does frustum culling (like fcBox for now), regardless of <a class="normal" href="CastleScene.TCastleScene.html#OctreeFrustumCulling">TCastleScene.OctreeFrustumCulling</a> setting.

<p>The algorithm used underneath is &quot;Coherent Hierarchical Culling&quot;, described in detail in &quot;GPU Gems 2&quot;, Chapter 6: &quot;Hardware Occlusion Queries Made Useful&quot;, by Michael Wimmer and Jiri Bittner. Online on [<a  href="http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter06.html">http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter06.html</a>].</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="DebugHierOcclusionQueryResults"></a><code>property <b>DebugHierOcclusionQueryResults</b>: boolean
      read FDebugHierOcclusionQueryResults
      write FDebugHierOcclusionQueryResults default false;</code></td>
</tr>
<tr><td colspan="2">
<p>
View only the shapes that were detected as visible by occlusion query in last Render.

<p>Use this only after render with <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#UseHierarchicalOcclusionQuery">UseHierarchicalOcclusionQuery</a>. TODO: for <a class="normal" href="CastleScene.TSceneRenderingAttributes.html#UseOcclusionQuery">UseOcclusionQuery</a> I would also like to make it work, for now not done as frustum information is gone. This will disable actual occlusion query, instead reusing results from last occlusion query done when this debug flag was <code>False</code>.

<p>Useful to quickly visualize the benefits of occlusion query.</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:11</em>
</span>
</td></tr></table></body></html>