scene render camera back
parent
a09db70d07
commit
40d66dd5db
|
@ -12,6 +12,7 @@
|
||||||
* @param showAxis
|
* @param showAxis
|
||||||
* @param gridSize
|
* @param gridSize
|
||||||
* @param gridColor
|
* @param gridColor
|
||||||
|
* @param camera - this overrides the renderer camera
|
||||||
* @param parentEntity
|
* @param parentEntity
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
|
@ -28,6 +29,7 @@ GameLib.D3.API.Scene = function(
|
||||||
showAxis,
|
showAxis,
|
||||||
gridSize,
|
gridSize,
|
||||||
gridColor,
|
gridColor,
|
||||||
|
camera,
|
||||||
parentEntity
|
parentEntity
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
@ -91,6 +93,11 @@ GameLib.D3.API.Scene = function(
|
||||||
}
|
}
|
||||||
this.gridColor = gridColor;
|
this.gridColor = gridColor;
|
||||||
|
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(camera)) {
|
||||||
|
camera = null;
|
||||||
|
}
|
||||||
|
this.camera = camera;
|
||||||
|
|
||||||
GameLib.API.Component.call(
|
GameLib.API.Component.call(
|
||||||
this,
|
this,
|
||||||
GameLib.Component.SCENE,
|
GameLib.Component.SCENE,
|
||||||
|
@ -101,94 +108,3 @@ GameLib.D3.API.Scene = function(
|
||||||
|
|
||||||
GameLib.D3.API.Scene.prototype = Object.create(GameLib.API.Component.prototype);
|
GameLib.D3.API.Scene.prototype = Object.create(GameLib.API.Component.prototype);
|
||||||
GameLib.D3.API.Scene.prototype.constructor = GameLib.D3.API.Scene;
|
GameLib.D3.API.Scene.prototype.constructor = GameLib.D3.API.Scene;
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns an API scene from an Object scene
|
|
||||||
* @param objectScene
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
GameLib.D3.API.Scene.FromObject = function(objectScene) {
|
|
||||||
|
|
||||||
var apiMeshes = [];
|
|
||||||
var apiLights = [];
|
|
||||||
var apiTextures = [];
|
|
||||||
var apiMaterials = [];
|
|
||||||
var apiImages = [];
|
|
||||||
|
|
||||||
if (objectScene.meshes) {
|
|
||||||
apiMeshes = objectScene.meshes.map(
|
|
||||||
function(objectMesh) {
|
|
||||||
if (objectMesh instanceof Object){
|
|
||||||
return GameLib.D3.API.Mesh.FromObject(objectMesh);
|
|
||||||
} else {
|
|
||||||
return objectMesh;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (objectScene.lights) {
|
|
||||||
apiLights = objectScene.lights.map(
|
|
||||||
function(objectLight) {
|
|
||||||
if (objectLight instanceof Object) {
|
|
||||||
return GameLib.D3.API.Light.FromObject(objectLight);
|
|
||||||
} else {
|
|
||||||
return objectLight;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (objectScene.textures) {
|
|
||||||
apiTextures = objectScene.textures.map(
|
|
||||||
function(objectTexture) {
|
|
||||||
if (objectTexture instanceof Object) {
|
|
||||||
return GameLib.D3.API.Texture.FromObject(objectTexture)
|
|
||||||
} else {
|
|
||||||
return objectTexture;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (objectScene.materials) {
|
|
||||||
apiMaterials = objectScene.materials.map(
|
|
||||||
function(objectMaterial) {
|
|
||||||
if (objectMaterial instanceof Object) {
|
|
||||||
return GameLib.D3.API.Material.FromObject(objectMaterial)
|
|
||||||
} else {
|
|
||||||
return objectMaterial;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (objectScene.images) {
|
|
||||||
apiImages = objectScene.images.map(
|
|
||||||
function(objectImage) {
|
|
||||||
if (objectImage instanceof Object) {
|
|
||||||
return GameLib.API.Image.FromObject(objectImage)
|
|
||||||
} else {
|
|
||||||
return objectImage;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
return new GameLib.D3.API.Scene(
|
|
||||||
objectScene.id,
|
|
||||||
objectScene.name,
|
|
||||||
apiMeshes,
|
|
||||||
apiLights,
|
|
||||||
apiTextures,
|
|
||||||
apiMaterials,
|
|
||||||
apiImages,
|
|
||||||
objectScene.fog,
|
|
||||||
objectScene.showGrid,
|
|
||||||
objectScene.showAxis,
|
|
||||||
objectScene.gridSize,
|
|
||||||
GameLib.API.Color.FromObject(objectScene.gridColor),
|
|
||||||
objectScene.parentEntity
|
|
||||||
);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
|
@ -30,6 +30,7 @@ GameLib.D3.Scene = function (
|
||||||
apiScene.showAxis,
|
apiScene.showAxis,
|
||||||
apiScene.gridSize,
|
apiScene.gridSize,
|
||||||
apiScene.gridColor,
|
apiScene.gridColor,
|
||||||
|
apiScene.camera,
|
||||||
apiScene.parentEntity
|
apiScene.parentEntity
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -124,6 +125,13 @@ GameLib.D3.Scene = function (
|
||||||
this
|
this
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (this.camera instanceof GameLib.D3.API.Camera) {
|
||||||
|
this.camera = new GameLib.D3.Camera(
|
||||||
|
this.graphics,
|
||||||
|
this.camera
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runtime scenes have helpers (just used to store which helper belongs to which scene)
|
* Runtime scenes have helpers (just used to store which helper belongs to which scene)
|
||||||
* @type {Array}
|
* @type {Array}
|
||||||
|
@ -146,7 +154,8 @@ GameLib.D3.Scene = function (
|
||||||
'textures' : [GameLib.D3.Texture],
|
'textures' : [GameLib.D3.Texture],
|
||||||
'materials' : [GameLib.D3.Material],
|
'materials' : [GameLib.D3.Material],
|
||||||
'images' : [GameLib.Image],
|
'images' : [GameLib.Image],
|
||||||
'fog' : GameLib.D3.Fog
|
'fog' : GameLib.D3.Fog,
|
||||||
|
'camera' : GameLib.D3.Camera
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -302,7 +311,6 @@ GameLib.D3.Scene.prototype.updateInstance = function(property) {
|
||||||
} else {
|
} else {
|
||||||
this.removeAxis();
|
this.removeAxis();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -374,30 +382,11 @@ GameLib.D3.Scene.prototype.toApiObject = function() {
|
||||||
this.showAxis,
|
this.showAxis,
|
||||||
this.gridSize,
|
this.gridSize,
|
||||||
this.gridColor.toApiObject(),
|
this.gridColor.toApiObject(),
|
||||||
|
GameLib.Utils.IdOrNull(this.camera),
|
||||||
GameLib.Utils.IdOrNull(this.parentEntity)
|
GameLib.Utils.IdOrNull(this.parentEntity)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts a scene Object to a GameLib.D3.Scene object
|
|
||||||
* @param graphics GameLib.GraphicsRuntime
|
|
||||||
* @param objectScene Object
|
|
||||||
* @returns {GameLib.D3.Scene}
|
|
||||||
* @constructor
|
|
||||||
*/
|
|
||||||
GameLib.D3.Scene.FromObject = function(
|
|
||||||
graphics,
|
|
||||||
objectScene
|
|
||||||
) {
|
|
||||||
var apiScene = GameLib.D3.API.Scene.FromObject(objectScene);
|
|
||||||
|
|
||||||
return new GameLib.D3.Scene(
|
|
||||||
graphics,
|
|
||||||
apiScene
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a mesh to the scene
|
* Adds a mesh to the scene
|
||||||
* @param object GameLib.D3.Mesh
|
* @param object GameLib.D3.Mesh
|
||||||
|
|
|
@ -211,55 +211,61 @@ GameLib.D3.Texture.prototype.updateInstance = function(property) {
|
||||||
throw new Error('need to specify a property');
|
throw new Error('need to specify a property');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'image') {
|
|
||||||
|
|
||||||
if (this.textureType === GameLib.D3.API.Texture.TEXTURE_TYPE_NORMAL) {
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
GameLib.Utils.UndefinedOrNull(this.image) &&
|
property === 'textureType' ||
|
||||||
this.instance.image
|
property === 'image'
|
||||||
) {
|
) {
|
||||||
try {
|
|
||||||
this.createInstance();
|
this.createInstance();
|
||||||
} catch (error) {
|
// }
|
||||||
console.error(error);
|
//
|
||||||
}
|
// if (property === 'image') {
|
||||||
}
|
|
||||||
|
|
||||||
if (this.image && this.image.instance && this.instance.image !== this.image.instance) {
|
// if (this.textureType === GameLib.D3.API.Texture.TEXTURE_TYPE_NORMAL) {
|
||||||
try {
|
//
|
||||||
this.createInstance();
|
// if (
|
||||||
} catch (error) {
|
// GameLib.Utils.UndefinedOrNull(this.image) &&
|
||||||
console.error(error);
|
// this.instance.image
|
||||||
}
|
// ) {
|
||||||
}
|
// try {
|
||||||
|
// this.createInstance();
|
||||||
} else if (this.textureType === GameLib.D3.API.Texture.TEXTURE_TYPE_CANVAS) {
|
// } catch (error) {
|
||||||
|
// console.error(error);
|
||||||
if (
|
// }
|
||||||
GameLib.Utils.UndefinedOrNull(this.canvas) &&
|
// }
|
||||||
this.instance.canvas
|
//
|
||||||
) {
|
// if (this.image && this.image.instance && this.instance.image !== this.image.instance) {
|
||||||
try {
|
// try {
|
||||||
this.createInstance();
|
// this.createInstance();
|
||||||
} catch (error) {
|
// } catch (error) {
|
||||||
console.error(error);
|
// console.error(error);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (this.canvas && this.canvas.instance && this.instance.image !== this.canvas.instance) {
|
// } else if (this.textureType === GameLib.D3.API.Texture.TEXTURE_TYPE_CANVAS) {
|
||||||
try {
|
//
|
||||||
this.createInstance();
|
// if (
|
||||||
} catch (error) {
|
// GameLib.Utils.UndefinedOrNull(this.canvas) &&
|
||||||
console.error(error);
|
// this.instance.canvas
|
||||||
}
|
// ) {
|
||||||
}
|
// try {
|
||||||
|
// this.createInstance();
|
||||||
} else if (this.textureType === GameLib.D3.API.Texture.TEXTURE_TYPE_CUBE) {
|
// } catch (error) {
|
||||||
|
// console.error(error);
|
||||||
console.log('todo : cube images change check here');
|
// }
|
||||||
|
// }
|
||||||
}
|
//
|
||||||
|
// if (this.canvas && this.canvas.instance && this.instance.image !== this.canvas.instance) {
|
||||||
|
// try {
|
||||||
|
// this.createInstance();
|
||||||
|
// } catch (error) {
|
||||||
|
// console.error(error);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// } else if (this.textureType === GameLib.D3.API.Texture.TEXTURE_TYPE_CUBE) {
|
||||||
|
//
|
||||||
|
// console.log('todo : cube images change check here');
|
||||||
|
// }
|
||||||
|
|
||||||
this.publish(
|
this.publish(
|
||||||
GameLib.Event.IMAGE_CHANGED,
|
GameLib.Event.IMAGE_CHANGED,
|
||||||
|
|
|
@ -1422,7 +1422,7 @@ GameLib.System.GUI.prototype.buildControl = function(folder, componentTemplate,
|
||||||
property === 'width' ||
|
property === 'width' ||
|
||||||
property === 'height'
|
property === 'height'
|
||||||
) {
|
) {
|
||||||
controllers.push(folder.add(object, property, 0, 1, 0.001));
|
controllers.push(folder.add(object, property, 0, 1000, 0.001));
|
||||||
} else if (
|
} else if (
|
||||||
property === 'depth' ||
|
property === 'depth' ||
|
||||||
property === 'radius'
|
property === 'radius'
|
||||||
|
|
|
@ -250,6 +250,10 @@ GameLib.System.Render.prototype.render = function(data) {
|
||||||
|
|
||||||
var camera = renderer.camera;
|
var camera = renderer.camera;
|
||||||
|
|
||||||
|
if (scene.camera && scene.camera.instance) {
|
||||||
|
camera = scene.camera;
|
||||||
|
}
|
||||||
|
|
||||||
if (renderer.renderMode === GameLib.D3.API.Renderer.MODE_EDIT) {
|
if (renderer.renderMode === GameLib.D3.API.Renderer.MODE_EDIT) {
|
||||||
|
|
||||||
if (!renderer.editCamera || !renderer.editCamera.instance) {
|
if (!renderer.editCamera || !renderer.editCamera.instance) {
|
||||||
|
|
Loading…
Reference in New Issue