Moved some material attributes to push constants
WIP updates to hello_cube smoke test; now rendering grid of cubes
This commit is contained in:
@@ -44,7 +44,8 @@ bool smoke_load()
|
||||
enum
|
||||
{
|
||||
kCameraNodeHandle = 10,
|
||||
kCubeNodeHandle = 11
|
||||
kLightNodeHandle = 11,
|
||||
kCubeNodeHandle = 12
|
||||
};
|
||||
|
||||
KrLoadResourceInfo load_resource_info = {};
|
||||
@@ -79,7 +80,7 @@ bool smoke_load()
|
||||
res = KrCreateScene(&create_scene_info);
|
||||
assert(res == KR_SUCCESS);
|
||||
|
||||
hydra::Vector3 cameraPos = hydra::Vector3::Create(1.0, 5.0, 3.0);
|
||||
hydra::Vector3 cameraPos = hydra::Vector3::Create(70, 0.5, 0.25);
|
||||
hydra::Matrix4 cameraMat = hydra::Matrix4::LookAt(cameraPos, hydra::Vector3::Create(0.0, 0.0, 0.0), hydra::Vector3::Up());
|
||||
hydra::Quaternion cameraRot = hydra::Quaternion::FromRotationMatrix(cameraMat);
|
||||
|
||||
@@ -91,14 +92,32 @@ bool smoke_load()
|
||||
create_camera_info.location = KR_SCENE_NODE_APPEND_CHILD;
|
||||
create_camera_info.newNodeHandle = kCameraNodeHandle;
|
||||
create_camera_info.sceneHandle = kSceneResourceHandle;
|
||||
create_camera_info.node.pName = "my_camera";
|
||||
create_camera_info.node.camera.surfaceHandle = 1;
|
||||
create_camera_info.node.translate = hydra::Vector3::Create(1.0, 5.0, 3.0);
|
||||
create_camera_info.node.rotate = cameraRot.eulerXYZ();
|
||||
create_camera_info.node.pName = "default_camera";
|
||||
create_camera_info.node.camera.surfaceHandle = 0;
|
||||
create_camera_info.node.translate = cameraPos;
|
||||
create_camera_info.node.rotate = -cameraRot.eulerXYZ();
|
||||
//
|
||||
// create_camera_info.node.translate = hydra::Vector3::Create(0.0, 5.0, 0.0);
|
||||
// create_camera_info.node.camera.skybox_texture = kSkyboxTextureResourceHandle;
|
||||
res = KrCreateNode(&create_camera_info);
|
||||
assert(res == KR_SUCCESS);
|
||||
|
||||
|
||||
/*
|
||||
// Add a light to the scene
|
||||
KrCreateNodeInfo create_light_info = { KR_STRUCTURE_TYPE_CREATE_NODE };
|
||||
res = KrInitNodeInfo(&create_light_info.node, KR_STRUCTURE_TYPE_NODE_DIRECTIONAL_LIGHT);
|
||||
assert(res == KR_SUCCESS);
|
||||
create_light_info.relativeNodeHandle = KR_NULL_HANDLE;
|
||||
create_light_info.location = KR_SCENE_NODE_APPEND_CHILD;
|
||||
create_light_info.newNodeHandle = kLightNodeHandle;
|
||||
create_light_info.sceneHandle = kSceneResourceHandle;
|
||||
create_light_info.node.pName = "my_light";
|
||||
create_light_info.node.rotate = hydra::Vector3::Create(0.25, 0.25, 0.37);
|
||||
res = KrCreateNode(&create_light_info);
|
||||
assert(res == KR_SUCCESS);
|
||||
*/
|
||||
|
||||
// Add a cube to the scene
|
||||
KrCreateNodeInfo create_cube_info = { KR_STRUCTURE_TYPE_CREATE_NODE };
|
||||
res = KrInitNodeInfo(&create_cube_info.node, KR_STRUCTURE_TYPE_NODE_MODEL);
|
||||
@@ -112,5 +131,17 @@ bool smoke_load()
|
||||
res = KrCreateNode(&create_cube_info);
|
||||
assert(res == KR_SUCCESS);
|
||||
|
||||
for (int x = -5; x < 5; x++) {
|
||||
for (int y = -5; y < 5; y++) {
|
||||
for (int z = -5; z < 5; z++) {
|
||||
create_cube_info.node.translate.x = x * 10;
|
||||
create_cube_info.node.translate.y = y * 10;
|
||||
create_cube_info.node.translate.z = z * 10;
|
||||
res = KrCreateNode(&create_cube_info);
|
||||
assert(res == KR_SUCCESS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user