mirror of
https://github.com/MapMakersAndProgrammers/Alternativa3D.git
synced 2025-10-26 18:09:14 -07:00
SkyBox refactoring
This commit is contained in:
@@ -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));
|
||||||
|
|||||||
Reference in New Issue
Block a user