Commit ba6f393434a64215d9879f982ebfac0ac0ab2025
1 parent
af599038
Change Scene3dView to ModelView
Change-Id: I0245be90e350f74bac1f2e0a3461077aa00bfa82 Signed-off-by: seungho <sbsh.baek@samsung.com>
Showing
15 changed files
with
280 additions
and
94 deletions
com.samsung.dali-demo.xml
| ... | ... | @@ -274,8 +274,8 @@ |
| 274 | 274 | <ui-application appid="rendering-triangle.example" exec="/usr/apps/com.samsung.dali-demo/bin/rendering-triangle.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> |
| 275 | 275 | <label>Rendering Triangle</label> |
| 276 | 276 | </ui-application> |
| 277 | - <ui-application appid="scene3d-view.example" exec="/usr/apps/com.samsung.dali-demo/bin/scene3d-view.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> | |
| 278 | - <label>Scene3d View</label> | |
| 277 | + <ui-application appid="scene3d-model-view.example" exec="/usr/apps/com.samsung.dali-demo/bin/scene3d-model-view.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> | |
| 278 | + <label>Model View</label> | |
| 279 | 279 | </ui-application> |
| 280 | 280 | <ui-application appid="scene3d.example" exec="/usr/apps/com.samsung.dali-demo/bin/scene3d.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true"> |
| 281 | 281 | <label>Scene3D</label> | ... | ... |
demo/dali-demo.cpp
| ... | ... | @@ -58,8 +58,8 @@ int DALI_EXPORT_API main(int argc, char** argv) |
| 58 | 58 | demo.AddExample(Example("renderer-stencil.example", DALI_DEMO_STR_TITLE_RENDERER_STENCIL)); |
| 59 | 59 | demo.AddExample(Example("rendering-skybox.example", DALI_DEMO_STR_TITLE_SKYBOX)); |
| 60 | 60 | demo.AddExample(Example("rendering-basic-pbr.example", DALI_DEMO_STR_TITLE_PBR)); |
| 61 | - demo.AddExample(Example("scene3d-view.example", DALI_DEMO_STR_TITLE_SCENE3D_VIEW)); | |
| 62 | 61 | #ifdef DALI_SCENE3D_AVAILABLE |
| 62 | + demo.AddExample(Example("scene3d-model-view.example", DALI_DEMO_STR_TITLE_SCENE3D_MODEL_VIEW)); | |
| 63 | 63 | demo.AddExample(Example("scene3d.example", DALI_DEMO_STR_TITLE_SCENE3D)); |
| 64 | 64 | #endif //DALI_SCENE3D_AVAILABLE |
| 65 | 65 | demo.AddExample(Example("shadows-and-lights.example", DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS)); | ... | ... |
examples/scene3d-view/scene3d-view-example.cpp renamed to examples/scene3d-model-view/scene3d-model-view-example.cpp
| ... | ... | @@ -16,7 +16,6 @@ |
| 16 | 16 | */ |
| 17 | 17 | |
| 18 | 18 | #include <dali-toolkit/dali-toolkit.h> |
| 19 | -#include <dali-toolkit/devel-api/controls/scene3d-view/scene3d-view.h> | |
| 20 | 19 | #include <dali/dali.h> |
| 21 | 20 | #include <dali/devel-api/adaptor-framework/file-loader.h> |
| 22 | 21 | #include <dali/devel-api/adaptor-framework/file-stream.h> |
| ... | ... | @@ -25,12 +24,14 @@ |
| 25 | 24 | #include <dali/public-api/actors/camera-actor.h> |
| 26 | 25 | #include <cstring> |
| 27 | 26 | |
| 27 | +#include <dali-scene3d/public-api/controls/model-view/model-view.h> | |
| 28 | + | |
| 28 | 29 | using namespace Dali; |
| 29 | 30 | using namespace Dali::Toolkit; |
| 30 | 31 | |
| 31 | 32 | /* |
| 32 | - * This example shows how to create and display a Scene3dView control. | |
| 33 | - * The application can load 5 different glTF model to Scene3dView control. | |
| 33 | + * This example shows how to create and display a ModelView control. | |
| 34 | + * The application can load 5 different glTF model to ModelView control. | |
| 34 | 35 | * Each model has diffirent material. BoomBox shows glossy or matt plastic material. |
| 35 | 36 | * DamagedHelmet shows a kind of reflective glass and metallic object. |
| 36 | 37 | * Microphone shows a roughness of metallic objects. |
| ... | ... | @@ -41,17 +42,10 @@ using namespace Dali::Toolkit; |
| 41 | 42 | |
| 42 | 43 | namespace |
| 43 | 44 | { |
| 44 | -enum GLTF_MODEL_LIST | |
| 45 | -{ | |
| 46 | - GLTF_ANIMATED_BOX = 0, | |
| 47 | - GLTF_LANTERN, | |
| 48 | - GLTF_BOOMBOX, | |
| 49 | - GLTF_DAMAGED_HELMET, | |
| 50 | - GLTF_MICROPHONE, | |
| 51 | - NUM_OF_GLTF_MODELS | |
| 52 | -}; | |
| 53 | 45 | |
| 54 | -const char* gltf_list[6] = | |
| 46 | +static constexpr int32_t NUM_OF_GLTF_MODELS = 7; | |
| 47 | + | |
| 48 | +const char* gltf_list[7] = | |
| 55 | 49 | { |
| 56 | 50 | /** |
| 57 | 51 | * For the BoxAnimated.gltf and its Assets |
| ... | ... | @@ -86,15 +80,17 @@ const char* gltf_list[6] = |
| 86 | 80 | * Creative Commons Attribution-NonCommercial license |
| 87 | 81 | * https://sketchfab.com/models/5172dbe9281a45f48cee8c15bdfa1831 |
| 88 | 82 | */ |
| 89 | - "microphone.gltf"}; | |
| 90 | - | |
| 91 | -Vector3 camera_position_list[6] = | |
| 92 | - { | |
| 93 | - Vector3(-6.00, -8.00, 12.00), | |
| 94 | - Vector3(-30.0, -40.0, 60.0), | |
| 95 | - Vector3(-0.03, -0.04, 0.06), | |
| 96 | - Vector3(-3.00, -4.00, 6.00), | |
| 97 | - Vector3(-0.00, -3.00, 4.00)}; | |
| 83 | + "microphone.gltf", | |
| 84 | + /** | |
| 85 | + * For the beer_modelView.dli and its Assets | |
| 86 | + * This model includes a bottle of beer and cube box. | |
| 87 | + */ | |
| 88 | + "beer_modelView.dli", | |
| 89 | + /** | |
| 90 | + * For the exercise_modelView.dli and its Assets | |
| 91 | + * This model includes a sportsman | |
| 92 | + */ | |
| 93 | + "exercise_modelView.dli"}; | |
| 98 | 94 | |
| 99 | 95 | /** |
| 100 | 96 | * For the diffuse and specular cube map texture. |
| ... | ... | @@ -124,8 +120,9 @@ Vector3 camera_position_list[6] = |
| 124 | 120 | |
| 125 | 121 | const std::string modeldir = DEMO_MODEL_DIR; |
| 126 | 122 | const std::string imagedir = DEMO_IMAGE_DIR; |
| 127 | -const std::string uri_diffuse_texture(imagedir + "forest_diffuse_cubemap.png"); | |
| 128 | -const std::string uri_specular_texture(imagedir + "forest_specular_cubemap.png"); | |
| 123 | +const std::string uri_cube_diffuse_texture(imagedir + "forest_diffuse_cubemap.png"); | |
| 124 | +const std::string uri_diffuse_texture(imagedir + "Studio/Irradiance.ktx"); | |
| 125 | +const std::string uri_specular_texture(imagedir + "Studio/Radiance.ktx"); | |
| 129 | 126 | |
| 130 | 127 | const int32_t cubeMap_index_x[6] = {2, 0, 1, 1, 1, 3}; |
| 131 | 128 | const int32_t cubeMap_index_y[6] = {1, 1, 0, 2, 1, 1}; |
| ... | ... | @@ -191,25 +188,25 @@ Shader LoadShaders(const std::string& shaderVertexFileName, const std::string& s |
| 191 | 188 | } // namespace |
| 192 | 189 | |
| 193 | 190 | /** |
| 194 | - * This example shows how to render glTF model with Scene3dView | |
| 191 | + * This example shows how to render glTF model with ModelView | |
| 195 | 192 | * How to test |
| 196 | 193 | * - Input UP or DOWN key to make the model rotate or stop. |
| 197 | 194 | * - Input LEFT or RIGHT key to change glTF model |
| 198 | 195 | * - Double Touch also changes glTF model. |
| 199 | 196 | */ |
| 200 | -class Scene3dViewController : public ConnectionTracker | |
| 197 | +class Scene3DModelViewExample : public ConnectionTracker | |
| 201 | 198 | { |
| 202 | 199 | public: |
| 203 | - Scene3dViewController(Application& application) | |
| 200 | + Scene3DModelViewExample(Application& application) | |
| 204 | 201 | : mApplication(application), |
| 205 | 202 | mModelOrientation(), |
| 206 | 203 | mAnimationStop(false) |
| 207 | 204 | { |
| 208 | 205 | // Connect to the Application's Init signal |
| 209 | - mApplication.InitSignal().Connect(this, &Scene3dViewController::Create); | |
| 206 | + mApplication.InitSignal().Connect(this, &Scene3DModelViewExample::Create); | |
| 210 | 207 | } |
| 211 | 208 | |
| 212 | - ~Scene3dViewController() | |
| 209 | + ~Scene3DModelViewExample() | |
| 213 | 210 | { |
| 214 | 211 | mAnimation.Stop(); |
| 215 | 212 | } |
| ... | ... | @@ -225,20 +222,20 @@ public: |
| 225 | 222 | RenderTask renderTask = mWindow.GetRenderTaskList().GetTask(0); |
| 226 | 223 | renderTask.SetCullMode(false); |
| 227 | 224 | |
| 228 | - mCurrentGlTF = GLTF_ANIMATED_BOX; | |
| 229 | - CreateSceneFromGLTF(gltf_list[mCurrentGlTF]); | |
| 225 | + mCurrentGlTF = 0u; | |
| 226 | + CreateSceneFromGLTF(mCurrentGlTF); | |
| 230 | 227 | SetCameraActor(); |
| 231 | 228 | CreateSkybox(); |
| 232 | 229 | SetAnimation(); |
| 233 | 230 | |
| 234 | 231 | // Respond to a click anywhere on the mWindow |
| 235 | - mWindow.GetRootLayer().TouchedSignal().Connect(this, &Scene3dViewController::OnTouch); | |
| 236 | - mWindow.KeyEventSignal().Connect(this, &Scene3dViewController::OnKeyEvent); | |
| 237 | - mWindow.GetRootLayer().WheelEventSignal().Connect(this, &Scene3dViewController::OnWheel); | |
| 232 | + mWindow.GetRootLayer().TouchedSignal().Connect(this, &Scene3DModelViewExample::OnTouch); | |
| 233 | + mWindow.KeyEventSignal().Connect(this, &Scene3DModelViewExample::OnKeyEvent); | |
| 234 | + mWindow.GetRootLayer().WheelEventSignal().Connect(this, &Scene3DModelViewExample::OnWheel); | |
| 238 | 235 | |
| 239 | 236 | mDoubleTap = false; |
| 240 | 237 | mDoubleTapTime = Timer::New(150); |
| 241 | - mDoubleTapTime.TickSignal().Connect(this, &Scene3dViewController::OnDoubleTapTime); | |
| 238 | + mDoubleTapTime.TickSignal().Connect(this, &Scene3DModelViewExample::OnDoubleTapTime); | |
| 242 | 239 | } |
| 243 | 240 | |
| 244 | 241 | bool OnWheel(Actor actor, const WheelEvent& wheelEvent) |
| ... | ... | @@ -247,9 +244,9 @@ public: |
| 247 | 244 | mWheelDelta = std::max(0.5f, mWheelDelta); |
| 248 | 245 | mWheelDelta = std::min(2.0f, mWheelDelta); |
| 249 | 246 | |
| 250 | - if(mScene3dView) | |
| 247 | + if(mModelView) | |
| 251 | 248 | { |
| 252 | - mScene3dView.SetProperty(Actor::Property::SCALE, mWheelDelta); | |
| 249 | + mModelView.SetProperty(Actor::Property::SCALE, mWheelDelta); | |
| 253 | 250 | } |
| 254 | 251 | |
| 255 | 252 | return true; |
| ... | ... | @@ -261,32 +258,46 @@ public: |
| 261 | 258 | return true; |
| 262 | 259 | } |
| 263 | 260 | |
| 264 | - void CreateSceneFromGLTF(std::string modelName) | |
| 261 | + void CreateSceneFromGLTF(uint32_t index) | |
| 265 | 262 | { |
| 266 | - if(mScene3dView) | |
| 263 | + if(mModelView) | |
| 267 | 264 | { |
| 268 | - mWindow.GetRootLayer().Remove(mScene3dView); | |
| 265 | + mWindow.GetRootLayer().Remove(mModelView); | |
| 269 | 266 | } |
| 270 | 267 | |
| 271 | 268 | std::string gltfUrl = modeldir; |
| 272 | - gltfUrl += modelName; | |
| 273 | - mScene3dView = Scene3dView::New(gltfUrl, uri_diffuse_texture, uri_specular_texture, Vector4::ONE); | |
| 274 | - | |
| 275 | - mScene3dView.SetLight(Scene3dView::LightType::POINT_LIGHT, Vector3(-5, -5, 5), Vector3(1, 1, 1)); | |
| 269 | + gltfUrl += gltf_list[index]; | |
| 276 | 270 | |
| 277 | - mWindow.Add(mScene3dView); | |
| 278 | - mScene3dView.PlayAnimations(); | |
| 271 | + mModelView = Dali::Scene3D::ModelView::New(gltfUrl); | |
| 272 | + if(index == 0u) | |
| 273 | + { | |
| 274 | + mModelView.SetProperty(Dali::Actor::Property::SIZE, Vector2(300, 300)); | |
| 275 | + mModelView.SetProperty(Dali::Actor::Property::POSITION_Y, 100); | |
| 276 | + } | |
| 277 | + else | |
| 278 | + { | |
| 279 | + mModelView.SetProperty(Dali::Actor::Property::SIZE, Vector2(600, 600)); | |
| 280 | + } | |
| 281 | + mModelView.SetProperty(Dali::Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER); | |
| 282 | + mModelView.SetProperty(Dali::Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); | |
| 283 | + mModelView.SetImageBasedLightSource(uri_diffuse_texture, uri_specular_texture, 0.6f); | |
| 284 | + mModelView.FitSize(true); | |
| 285 | + mModelView.FitCenter(true); | |
| 286 | + | |
| 287 | + mWindow.Add(mModelView); | |
| 288 | + if(mModelView.GetAnimationCount()>0) | |
| 289 | + { | |
| 290 | + Animation animation = (index == 0u) ? mModelView.GetAnimation(0u) : mModelView.GetAnimation("idleToSquatClip_0"); | |
| 291 | + animation.Play(); | |
| 292 | + animation.SetLoopCount(0); | |
| 293 | + } | |
| 279 | 294 | } |
| 280 | 295 | |
| 281 | 296 | void SetCameraActor() |
| 282 | 297 | { |
| 283 | - mCameraPosition = camera_position_list[mCurrentGlTF]; | |
| 284 | 298 | mCameraActor = mWindow.GetRenderTaskList().GetTask(0).GetCameraActor(); |
| 285 | - mCameraActor.SetProperty(Dali::Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); | |
| 286 | - mCameraActor.SetProperty(Dali::Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER); | |
| 287 | - mCameraActor.SetProperty(Dali::Actor::Property::POSITION, mCameraPosition); | |
| 299 | + mCameraPosition = mCameraActor.GetProperty<Vector3>(Dali::Actor::Property::POSITION); | |
| 288 | 300 | mCameraActor.SetType(Dali::Camera::LOOK_AT_TARGET); |
| 289 | - mCameraActor.SetNearClippingPlane(0.01); | |
| 290 | 301 | } |
| 291 | 302 | |
| 292 | 303 | void CreateSkybox() |
| ... | ... | @@ -359,7 +370,7 @@ public: |
| 359 | 370 | mSkyboxGeometry.SetType(Geometry::TRIANGLES); |
| 360 | 371 | |
| 361 | 372 | // Diffuse Cube Map |
| 362 | - Devel::PixelBuffer diffusePixelBuffer = LoadImageFromFile(uri_diffuse_texture); | |
| 373 | + Devel::PixelBuffer diffusePixelBuffer = LoadImageFromFile(uri_cube_diffuse_texture); | |
| 363 | 374 | int32_t diffuseFaceSize = diffusePixelBuffer.GetWidth() / 4; |
| 364 | 375 | Texture texture = Texture::New(TextureType::TEXTURE_CUBE, diffusePixelBuffer.GetPixelFormat(), diffuseFaceSize, diffuseFaceSize); |
| 365 | 376 | for(int32_t i = 0; i < 6; ++i) |
| ... | ... | @@ -405,7 +416,7 @@ public: |
| 405 | 416 | { |
| 406 | 417 | keyframes.Add(i * lengthAnimation, Quaternion(Degree(i * 90.0), Vector3::YAXIS)); |
| 407 | 418 | } |
| 408 | - mAnimation.AnimateBetween(Property(mScene3dView, Dali::Actor::Property::ORIENTATION), keyframes, Animation::Interpolation::LINEAR); | |
| 419 | + mAnimation.AnimateBetween(Property(mModelView, Dali::Actor::Property::ORIENTATION), keyframes, Animation::Interpolation::LINEAR); | |
| 409 | 420 | mAnimation.SetLooping(true); |
| 410 | 421 | mAnimation.Play(); |
| 411 | 422 | } |
| ... | ... | @@ -465,18 +476,7 @@ public: |
| 465 | 476 | { |
| 466 | 477 | mCurrentGlTF = NUM_OF_GLTF_MODELS - 1; |
| 467 | 478 | } |
| 468 | - CreateSceneFromGLTF(gltf_list[mCurrentGlTF]); | |
| 469 | - mCameraPosition = camera_position_list[mCurrentGlTF]; | |
| 470 | - mCameraActor.SetProperty(Dali::Actor::Property::POSITION, mCameraPosition); | |
| 471 | - if(mCurrentGlTF == GLTF_LANTERN) | |
| 472 | - { | |
| 473 | - mCameraActor.SetTargetPosition(Vector3(0.0, -15.0, 0.0)); | |
| 474 | - } | |
| 475 | - else | |
| 476 | - { | |
| 477 | - mCameraActor.SetTargetPosition(Vector3::ZERO); | |
| 478 | - } | |
| 479 | - mSkyboxActor.SetProperty(Dali::Actor::Property::POSITION, mCameraPosition); | |
| 479 | + CreateSceneFromGLTF(mCurrentGlTF); | |
| 480 | 480 | SetAnimation(); |
| 481 | 481 | mAnimationStop = false; |
| 482 | 482 | mWheelDelta = 1.0f; |
| ... | ... | @@ -604,8 +604,8 @@ private: |
| 604 | 604 | CameraActor mCameraActor; |
| 605 | 605 | Dali::Timer mTimer; |
| 606 | 606 | |
| 607 | - Vector3 mCameraPosition; | |
| 608 | - Scene3dView mScene3dView; | |
| 607 | + Vector3 mCameraPosition; | |
| 608 | + Dali::Scene3D::ModelView mModelView; | |
| 609 | 609 | |
| 610 | 610 | Vector2 mPointZ; |
| 611 | 611 | Quaternion mModelOrientation; |
| ... | ... | @@ -630,8 +630,8 @@ private: |
| 630 | 630 | |
| 631 | 631 | int32_t DALI_EXPORT_API main(int32_t argc, char** argv) |
| 632 | 632 | { |
| 633 | - Application application = Application::New(&argc, &argv); | |
| 634 | - Scene3dViewController test(application); | |
| 633 | + Application application = Application::New(&argc, &argv); | |
| 634 | + Scene3DModelViewExample test(application); | |
| 635 | 635 | application.MainLoop(); |
| 636 | 636 | return 0; |
| 637 | 637 | } | ... | ... |
resources/models/beer_modelView.dli
0 → 100644
| 1 | +{ | |
| 2 | + "asset": { "version": "1.0" }, | |
| 3 | + "scene": 0, | |
| 4 | + "scenes": [ { "nodes": [ 0 ] } ], | |
| 5 | + "nodes": [ | |
| 6 | + { | |
| 7 | + "name": "Scene", | |
| 8 | + "matrix": [ 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1 ], | |
| 9 | + "children": [ 1, 2 ] | |
| 10 | + }, | |
| 11 | + { | |
| 12 | + "name": "Cube", | |
| 13 | + "matrix": [ 2.5, 0, 0, 0, 0, 2.5, 0, 0, 0, 0, 2.5, 0, 0, 0, 0, 1 ], | |
| 14 | + "model": { | |
| 15 | + "mesh": 0, | |
| 16 | + "material": 0, | |
| 17 | + "shader": 0 | |
| 18 | + } | |
| 19 | + }, | |
| 20 | + { | |
| 21 | + "name": "bottle", | |
| 22 | + "matrix": [ 0.125, 0, 0, 0, 0, -0, 0.125, 0, 0, -0.125, -0, 0, -0, 0, -1.5, 1 ], | |
| 23 | + "children": [ 3, 4, 5, 6 ] | |
| 24 | + }, | |
| 25 | + { | |
| 26 | + "name": "bottle-cap", | |
| 27 | + "model": { | |
| 28 | + "mesh": 3, | |
| 29 | + "material": 3, | |
| 30 | + "shader": 1 | |
| 31 | + } | |
| 32 | + }, | |
| 33 | + { | |
| 34 | + "name": "bottle-alpha-front", | |
| 35 | + "model": { | |
| 36 | + "mesh": 1, | |
| 37 | + "material": 1, | |
| 38 | + "shader": 2 | |
| 39 | + } | |
| 40 | + }, | |
| 41 | + { | |
| 42 | + "name": "bottle-alpha-back", | |
| 43 | + "model": { | |
| 44 | + "mesh": 1, | |
| 45 | + "material": 1, | |
| 46 | + "shader": 3 | |
| 47 | + } | |
| 48 | + }, | |
| 49 | + { | |
| 50 | + "name": "bottle-label", | |
| 51 | + "model": { | |
| 52 | + "mesh": 2, | |
| 53 | + "material": 2, | |
| 54 | + "shader": 4 | |
| 55 | + } | |
| 56 | + } | |
| 57 | + ], | |
| 58 | + "meshes": [ | |
| 59 | + { | |
| 60 | + "uri": "beer/cube.bin", | |
| 61 | + "attributes": 31, | |
| 62 | + "primitive": "TRIANGLES", | |
| 63 | + "indices": { "byteOffset": 0, "byteLength": 72 }, | |
| 64 | + "positions": { "byteOffset": 72, "byteLength": 288 }, | |
| 65 | + "normals": { "byteOffset": 360, "byteLength": 288 }, | |
| 66 | + "textures": { "byteOffset": 648, "byteLength": 192 }, | |
| 67 | + "tangents": { "byteOffset": 840, "byteLength": 288 } | |
| 68 | + }, | |
| 69 | + { | |
| 70 | + "uri": "beer/beer.bin", | |
| 71 | + "attributes": 31, | |
| 72 | + "primitive": "TRIANGLES", | |
| 73 | + "indices": { "byteOffset": 0, "byteLength": 19920 }, | |
| 74 | + "positions": { "byteOffset": 19920, "byteLength": 54792 }, | |
| 75 | + "normals": { "byteOffset": 74712, "byteLength": 54792 }, | |
| 76 | + "textures": { "byteOffset": 129504, "byteLength": 36528 }, | |
| 77 | + "tangents": { "byteOffset": 166032, "byteLength": 54792 } | |
| 78 | + }, | |
| 79 | + { | |
| 80 | + "uri": "beer/beer.bin", | |
| 81 | + "attributes": 31, | |
| 82 | + "primitive": "TRIANGLES", | |
| 83 | + "indices": { "byteOffset": 220824, "byteLength": 13200 }, | |
| 84 | + "positions": { "byteOffset": 234024, "byteLength": 14628 }, | |
| 85 | + "normals": { "byteOffset": 248652, "byteLength": 14628 }, | |
| 86 | + "textures": { "byteOffset": 263280, "byteLength": 9752 }, | |
| 87 | + "tangents": { "byteOffset": 273032, "byteLength": 14628 } | |
| 88 | + }, | |
| 89 | + { | |
| 90 | + "uri": "beer/beer.bin", | |
| 91 | + "attributes": 31, | |
| 92 | + "primitive": "TRIANGLES", | |
| 93 | + "indices": { "byteOffset": 287660, "byteLength": 31440 }, | |
| 94 | + "positions": { "byteOffset": 319100, "byteLength": 121032 }, | |
| 95 | + "normals": { "byteOffset": 440132, "byteLength": 121032 }, | |
| 96 | + "textures": { "byteOffset": 561164, "byteLength": 80688 }, | |
| 97 | + "tangents": { "byteOffset": 641852, "byteLength": 121032 } | |
| 98 | + } | |
| 99 | + ], | |
| 100 | + "skeletons": [ | |
| 101 | + ], | |
| 102 | + "cameras": [ | |
| 103 | + { | |
| 104 | + "fov": 60, | |
| 105 | + "near": 0.1, | |
| 106 | + "far": 100, | |
| 107 | + "matrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 3.5, 1 ] | |
| 108 | + } | |
| 109 | + ], | |
| 110 | + "lights": [ | |
| 111 | + ], | |
| 112 | + "materials": [ | |
| 113 | + { | |
| 114 | + "color": [ 1.0, 0.95, 0.5 ], | |
| 115 | + "metallic": 0.25, | |
| 116 | + "roughness": 1.0, | |
| 117 | + "environment": 1 | |
| 118 | + }, | |
| 119 | + { | |
| 120 | + "color": [ 0.1, 0.4, 0.0, 0.6 ], | |
| 121 | + "metallic": 0.4, | |
| 122 | + "roughness": 0.0, | |
| 123 | + "environment": 1 | |
| 124 | + }, | |
| 125 | + { | |
| 126 | + "albedoMap": "../images/beer/etiqueta.jpg", | |
| 127 | + "roughness": 0.5, | |
| 128 | + "environment": 1 | |
| 129 | + }, | |
| 130 | + { | |
| 131 | + "color": [ 0.5, 0.5, 0.5 ], | |
| 132 | + "metallic": 1.0, | |
| 133 | + "roughness": 0.0, | |
| 134 | + "environment": 1 | |
| 135 | + } | |
| 136 | + ], | |
| 137 | + "environment": [ | |
| 138 | + { | |
| 139 | + }, | |
| 140 | + { | |
| 141 | + "cubeSpecular": "../images/Studio/Radiance.ktx", | |
| 142 | + "cubeDiffuse": "../images/Studio/Irradiance.ktx", | |
| 143 | + "iblIntensity": 0.75 | |
| 144 | + } | |
| 145 | + ], | |
| 146 | + "shaders": [ | |
| 147 | + { | |
| 148 | + "vertex": "../shaders/dli_pbr.vsh", | |
| 149 | + "fragment": "../shaders/dli_pbr.fsh", | |
| 150 | + "rendererState": "DEPTH_TEST|CULL_FRONT", | |
| 151 | + "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], | |
| 152 | + "uMaxLOD": 6 | |
| 153 | + }, | |
| 154 | + { | |
| 155 | + "vertex": "../shaders/dli_pbr.vsh", | |
| 156 | + "fragment": "../shaders/dli_pbr.fsh", | |
| 157 | + "rendererState": "DEPTH_TEST|DEPTH_WRITE", | |
| 158 | + "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], | |
| 159 | + "uMaxLOD": 6 | |
| 160 | + }, | |
| 161 | + { | |
| 162 | + "vertex": "../shaders/dli_pbr.vsh", | |
| 163 | + "fragment": "../shaders/dli_pbr.fsh", | |
| 164 | + "defines": [ "THREE_TEX" ], | |
| 165 | + "rendererState": "ALPHA_BLEND|DEPTH_TEST|CULL_FRONT", | |
| 166 | + "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], | |
| 167 | + "uMaxLOD": 6 | |
| 168 | + }, | |
| 169 | + { | |
| 170 | + "vertex": "../shaders/dli_pbr.vsh", | |
| 171 | + "fragment": "../shaders/dli_pbr.fsh", | |
| 172 | + "defines": [ "THREE_TEX" ], | |
| 173 | + "rendererState": "ALPHA_BLEND|DEPTH_TEST|CULL_BACK", | |
| 174 | + "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], | |
| 175 | + "uMaxLOD": 6 | |
| 176 | + }, | |
| 177 | + { | |
| 178 | + "vertex": "../shaders/dli_pbr.vsh", | |
| 179 | + "fragment": "../shaders/dli_pbr.fsh", | |
| 180 | + "defines": [ "FLIP_V" ], | |
| 181 | + "rendererState": "DEPTH_TEST|DEPTH_WRITE|CULL_BACK", | |
| 182 | + "uCubeMatrix": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], | |
| 183 | + "uMaxLOD": 6 | |
| 184 | + } | |
| 185 | + ] | |
| 186 | +} | ... | ... |
resources/po/as.po
resources/po/de.po
resources/po/en_GB.po
| ... | ... | @@ -309,5 +309,5 @@ msgstr "Web View" |
| 309 | 309 | |
| 310 | 310 | msgid "DALI_DEMO_STR_TITLE_ANIMATED_VECTOR_IMAGES" |
| 311 | 311 | msgstr "Animated Vector Images" |
| 312 | -msgid "DALI_DEMO_STR_TITLE_SCENE3D_VIEW" | |
| 313 | -msgstr "Scene3D View glTF" | |
| 312 | +msgid "DALI_DEMO_STR_TITLE_SCENE3D_MODEL_VIEW" | |
| 313 | +msgstr "Scene3D Model View" | ... | ... |
resources/po/en_US.po
| ... | ... | @@ -324,5 +324,5 @@ msgstr "Text Bitmap Font" |
| 324 | 324 | |
| 325 | 325 | msgid "DALI_DEMO_STR_TITLE_WAVES" |
| 326 | 326 | msgstr "Waves" |
| 327 | -msgid "DALI_DEMO_STR_TITLE_SCENE3D_VIEW" | |
| 328 | -msgstr "Scene3D View glTF" | |
| 327 | +msgid "DALI_DEMO_STR_TITLE_SCENE3D_MODEL_VIEW" | |
| 328 | +msgstr "Scene3D Model View" | ... | ... |
resources/po/es.po
resources/po/fi.po
resources/po/ko.po
| ... | ... | @@ -198,5 +198,5 @@ msgstr "PBR" |
| 198 | 198 | |
| 199 | 199 | msgid "DALI_DEMO_STR_TITLE_ANIMATED_VECTOR_IMAGES" |
| 200 | 200 | msgstr "애니메이션 벡터 이미지" |
| 201 | -msgid "DALI_DEMO_STR_TITLE_SCENE3D_VIEW" | |
| 202 | -msgstr "Scene3D View glTF" | |
| 201 | +msgid "DALI_DEMO_STR_TITLE_SCENE3D_MODEL_VIEW" | |
| 202 | +msgstr "Scene3D Model View" | ... | ... |
resources/po/ml.po
resources/po/ur.po
resources/po/zn_CH.po
shared/dali-demo-strings.h
| ... | ... | @@ -115,7 +115,7 @@ extern "C" |
| 115 | 115 | #define DALI_DEMO_STR_TITLE_RENDERING_RADIAL_PROGRESS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERING_RADIAL_PROGRESS") |
| 116 | 116 | #define DALI_DEMO_STR_TITLE_RENDERING_RAY_MARCHING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERING_RAY_MARCHING") |
| 117 | 117 | #define DALI_DEMO_STR_TITLE_RENDERER_STENCIL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERER_STENCIL") |
| 118 | -#define DALI_DEMO_STR_TITLE_SCENE3D_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCENE3D_VIEW") | |
| 118 | +#define DALI_DEMO_STR_TITLE_SCENE3D_MODEL_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCENE3D_MODEL_VIEW") | |
| 119 | 119 | #define DALI_DEMO_STR_TITLE_SCENE3D dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCENE3D") |
| 120 | 120 | #define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI") |
| 121 | 121 | #define DALI_DEMO_STR_TITLE_SCROLL_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCROLL_VIEW") |
| ... | ... | @@ -227,7 +227,7 @@ extern "C" |
| 227 | 227 | #define DALI_DEMO_STR_TITLE_RENDERING_RAY_MARCHING "Ray Marching" |
| 228 | 228 | #define DALI_DEMO_STR_TITLE_RENDERING_RADIAL_PROGRESS "Radial Progress" |
| 229 | 229 | #define DALI_DEMO_STR_TITLE_RENDERER_STENCIL "Renderer Stencils" |
| 230 | -#define DALI_DEMO_STR_TITLE_SCENE3D_VIEW "Scene3D View glTF" | |
| 230 | +#define DALI_DEMO_STR_TITLE_SCENE3D_MODEL_VIEW "Scene3D Model View" | |
| 231 | 231 | #define DALI_DEMO_STR_TITLE_SCENE3D "Scene3D" |
| 232 | 232 | #define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI "Script Based UI" |
| 233 | 233 | #define DALI_DEMO_STR_TITLE_SCROLL_VIEW "Scroll View" | ... | ... |