Hilfe

MeshCullBox

B3D

Aufruf

MeshCullBox mesh, x#, y#, z#, breite#, höhe#, tiefe#

Parameter

mesh das Objekt für das die Box gelten soll
x x Koordinate der Box
y y Koordinate der Box
z z Koordinate der Box
breite Breite der Box
höhe höhe der Box
tiefe tiefe der Box


Rückgabewert

-


Beschreibung

MeshCullBox erstellt eine Box für ein festgelegtes Objekt. Dadurch ist es möglich die Grenze, ab der das bestimmte Objekt gerendert werden soll, zu verändern. (mesh culling)
Dies ist z.B. wichtig bei Bone animierten Objekten, denn bei diesen wird die Box auf Basis von Frame 0 gemacht, wenn aber diese Pose zb eine stehende Figur mit herunterhängenden Armen ist, wird es sehr häufig zu Fehlern kommen denn der ausgestreckte Arm hätte dann keinen Einfluss auf das Renderverhalten was dazu führt das die Figur häufig gar nicht da ist und dann auf einmal der Arm "mitten im Bild" erscheinen kann.


Beispiel

Demonstriert die Verwendung von MeshCullBox

Graphics3D 640, 480
SetBuffer BackBuffer()
camera = CreateCamera()
light = CreateLight()
box = CreateCube()
PositionEntity box, 0, 0, 5
EntityAlpha box, 0.5
box_cull = CreateCube()
PositionEntity box_cull, 0, 0, 5
EntityAlpha box_cull, 0.5
EntityColor box_cull, 255, 100, 100
scale# = 1

While Not KeyHit(1)
If KeyDown(203) = 1 Then MoveEntity box, 0.1, 0, 0 : MoveEntity box_cull, 0.1, 0, 0
If KeyDown(205) = 1 Then MoveEntity box, -0.1, 0, 0 : MoveEntity box_cull, -0.1, 0, 0
If KeyDown(208) = 1 Then MoveEntity box, 0, 0.1, 0 : MoveEntity box_cull, 0, 0.1, 0
If KeyDown(200) = 1 Then MoveEntity box, 0, -0.1, 0 : MoveEntity box_cull, 0, -0.1, 0
If KeyDown(44) = 1 Then scale# = scale# - 0.1
If KeyDown(30) = 1 Then scale# = scale# + 0.1
ScaleEntity box_cull, scale#, scale#, scale#
MeshCullBox box, EntityX(box), EntityY(box), EntityZ(box), scale#, scale#, scale#
RenderWorld
Text 0, 0, "Benutze Cursortasten/A/Z"
Text 0, 20, "CullBox Scale: " + scale#
Flip
Wend
End

Übersicht 3D Grafik Mesh