SkyBox refactoring

This commit is contained in:
Yaski
2012-08-07 15:49:52 +06:00
parent 872f625eaa
commit eef093f24a

View File

@@ -80,7 +80,7 @@ package alternativa.engine3d.objects {
private var bottomSurface:Surface; private var bottomSurface:Surface;
private var topSurface:Surface; private var topSurface:Surface;
private var size:Number; private var halfSize:Number;
/** /**
* Creates a new SkyBox instance. * Creates a new SkyBox instance.
@@ -95,10 +95,7 @@ package alternativa.engine3d.objects {
* @see alternativa.engine3d.materials.Material * @see alternativa.engine3d.materials.Material
*/ */
public function SkyBox(size:Number, left:Material = null, right:Material = null, back:Material = null, front:Material = null, bottom:Material = null, top:Material = null, uvPadding:Number = 0) { public function SkyBox(size:Number, left:Material = null, right:Material = null, back:Material = null, front:Material = null, bottom:Material = null, top:Material = null, uvPadding:Number = 0) {
this.halfSize = size*0.5;
size *= 0.5;
this.size = size;
geometry = new Geometry(24); geometry = new Geometry(24);
@@ -111,35 +108,35 @@ package alternativa.engine3d.objects {
geometry.addVertexStream(attributes); geometry.addVertexStream(attributes);
geometry.setAttributeValues(VertexAttributes.POSITION, Vector.<Number>([ geometry.setAttributeValues(VertexAttributes.POSITION, Vector.<Number>([
-size, -size, size, -halfSize, -halfSize, halfSize,
-size, -size, -size, -halfSize, -halfSize, -halfSize,
-size, size, -size, -halfSize, halfSize, -halfSize,
-size, size, size, -halfSize, halfSize, halfSize,
size, size, size, halfSize, halfSize, halfSize,
size, size, -size, halfSize, halfSize, -halfSize,
size, -size, -size, halfSize, -halfSize, -halfSize,
size, -size, size, halfSize, -halfSize, halfSize,
size, -size, size, halfSize, -halfSize, halfSize,
size, -size, -size, halfSize, -halfSize, -halfSize,
-size, -size, -size, -halfSize, -halfSize, -halfSize,
-size, -size, size, -halfSize, -halfSize, halfSize,
-size, size, size, -halfSize, halfSize, halfSize,
-size, size, -size, -halfSize, halfSize, -halfSize,
size, size, -size, halfSize, halfSize, -halfSize,
size, size, size, halfSize, halfSize, halfSize,
-size, size, -size, -halfSize, halfSize, -halfSize,
-size, -size, -size, -halfSize, -halfSize, -halfSize,
size, -size, -size, halfSize, -halfSize, -halfSize,
size, size, -size, halfSize, halfSize, -halfSize,
-size, -size, size, -halfSize, -halfSize, halfSize,
-size, size, size, -halfSize, halfSize, halfSize,
size, size, size, halfSize, halfSize, halfSize,
size, -size, size halfSize, -halfSize, halfSize
])); ]));
geometry.setAttributeValues(VertexAttributes.TEXCOORDS[0], Vector.<Number>([ geometry.setAttributeValues(VertexAttributes.TEXCOORDS[0], Vector.<Number>([
@@ -214,44 +211,44 @@ package alternativa.engine3d.objects {
var dy:Number; var dy:Number;
var dz:Number; var dz:Number;
var len:Number; var len:Number;
dx = -size - cameraToLocalTransform.d; dx = -halfSize - cameraToLocalTransform.d;
dy = -size - cameraToLocalTransform.h; dy = -halfSize - cameraToLocalTransform.h;
dz = -size - cameraToLocalTransform.l; dz = -halfSize - cameraToLocalTransform.l;
len = dx*dx + dy*dy + dz*dz; len = dx*dx + dy*dy + dz*dz;
if (len > max) max = len; if (len > max) max = len;
dx = size - cameraToLocalTransform.d; dx = halfSize - cameraToLocalTransform.d;
dy = -size - cameraToLocalTransform.h; dy = -halfSize - cameraToLocalTransform.h;
dz = -size - cameraToLocalTransform.l; dz = -halfSize - cameraToLocalTransform.l;
len = dx*dx + dy*dy + dz*dz; len = dx*dx + dy*dy + dz*dz;
if (len > max) max = len; if (len > max) max = len;
dx = size - cameraToLocalTransform.d; dx = halfSize - cameraToLocalTransform.d;
dy = size - cameraToLocalTransform.h; dy = halfSize - cameraToLocalTransform.h;
dz = -size - cameraToLocalTransform.l; dz = -halfSize - cameraToLocalTransform.l;
len = dx*dx + dy*dy + dz*dz; len = dx*dx + dy*dy + dz*dz;
if (len > max) max = len; if (len > max) max = len;
dx = -size - cameraToLocalTransform.d; dx = -halfSize - cameraToLocalTransform.d;
dy = size - cameraToLocalTransform.h; dy = halfSize - cameraToLocalTransform.h;
dz = -size - cameraToLocalTransform.l; dz = -halfSize - cameraToLocalTransform.l;
len = dx*dx + dy*dy + dz*dz; len = dx*dx + dy*dy + dz*dz;
if (len > max) max = len; if (len > max) max = len;
dx = -size - cameraToLocalTransform.d; dx = -halfSize - cameraToLocalTransform.d;
dy = -size - cameraToLocalTransform.h; dy = -halfSize - cameraToLocalTransform.h;
dz = size - cameraToLocalTransform.l; dz = halfSize - cameraToLocalTransform.l;
len = dx*dx + dy*dy + dz*dz; len = dx*dx + dy*dy + dz*dz;
if (len > max) max = len; if (len > max) max = len;
dx = size - cameraToLocalTransform.d; dx = halfSize - cameraToLocalTransform.d;
dy = -size - cameraToLocalTransform.h; dy = -halfSize - cameraToLocalTransform.h;
dz = size - cameraToLocalTransform.l; dz = halfSize - cameraToLocalTransform.l;
len = dx*dx + dy*dy + dz*dz; len = dx*dx + dy*dy + dz*dz;
if (len > max) max = len; if (len > max) max = len;
dx = size - cameraToLocalTransform.d; dx = halfSize - cameraToLocalTransform.d;
dy = size - cameraToLocalTransform.h; dy = halfSize - cameraToLocalTransform.h;
dz = size - cameraToLocalTransform.l; dz = halfSize - cameraToLocalTransform.l;
len = dx*dx + dy*dy + dz*dz; len = dx*dx + dy*dy + dz*dz;
if (len > max) max = len; if (len > max) max = len;
dx = -size - cameraToLocalTransform.d; dx = -halfSize - cameraToLocalTransform.d;
dy = size - cameraToLocalTransform.h; dy = halfSize - cameraToLocalTransform.h;
dz = size - cameraToLocalTransform.l; dz = halfSize - cameraToLocalTransform.l;
len = dx*dx + dy*dy + dz*dz; len = dx*dx + dy*dy + dz*dz;
if (len > max) max = len; if (len > max) max = len;
drawUnit.setVertexConstantsFromNumbers(0, cameraToLocalTransform.d, cameraToLocalTransform.h, cameraToLocalTransform.l, camera.farClipping/Math.sqrt(max)); drawUnit.setVertexConstantsFromNumbers(0, cameraToLocalTransform.d, cameraToLocalTransform.h, cameraToLocalTransform.l, camera.farClipping/Math.sqrt(max));