From b59b25d59956ee93afd89d497af92ca735040040 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Wed, 16 Jan 2013 15:56:17 +0000 Subject: [PATCH] paysages : Small changes. git-svn-id: https://subversion.assembla.com/svn/thunderk/paysages@498 b1fd45b6-86a6-48da-8261-f70d1f35bdcc --- TODO | 61 +++++++++++++++++++-------------------- gui_qt/baseform.cpp | 12 ++++++++ gui_qt/formatmosphere.cpp | 6 ++-- gui_qt/widgetexplorer.cpp | 5 ---- lib_paysages/camera.c | 5 ++++ 5 files changed, 49 insertions(+), 40 deletions(-) diff --git a/TODO b/TODO index e3a360e..499ac89 100644 --- a/TODO +++ b/TODO @@ -1,53 +1,49 @@ Technology Preview 2 : -- Implement High Dynamic Range (with OpenEXR or Radiance file format support ?). -- Fully move layer management from BaseForm to BaseFormLayer. - Replace terrain canvas editor by full sculpting editor. => Add a generation dialog, with fixed resolution. => Store local terrain modifications in fully dynamic canvas. => Add map preview with editor area. => Allow camera move and zoom. - Get rid of noise dialogs, for simpler settings. -- Finalize Preetham's model usage - => Apply model to atmosphere (aerial perspective) - => Find a proper model for night sky (maybe Shirley) -- Clouds should keep distance to ground. -- Add fresnel effect to specular lighting. -- Add clouds to explorer with 3d textures. -- Start using OpenCL to optimize rendering. -- Rethink the quality settings and detail smoothing in the distance. - => When quality setting is set to 10, add boost options - => Add detail boost (adds granularity) - => Add step boost (for marching algorithms) -- Waves noise should not change layers offsets each time a setting is changed (layers are reconstructed currently). -- Fix rendering when inside a cloud layer, with other upper or lower layers. -- Add "hardness to light" and shadow control ("minimum lighting") to material. - -Technlogy Preview 3 : -- Add logarithmic sliders for some float values. -- Improve previews. - => Add user markers on OSD. - => Add areas marking. +- Apply Preetham's model usage + => Convert to HDR rendering. + => Apply model's aerial perspective. +- Find a proper model for night sky (maybe Shirley). - Improve textures (current model is greatly incorrect). => Separate models (basic texture and covering texture). => Covering texture height should inpact terrain height. => Add texture shadowing. -- Use the curve editor in noise editor (option). -- Add a noise filler (and maybe noise intervals ?). +- Clouds should keep distance to ground. +- Add fresnel effect to specular lighting. +- Add "hardness to light" and shadow control ("minimum lighting") to material. +- Waves noise should not change layers offsets each time a setting is changed (layers are reconstructed currently). +- Fix rendering when inside a cloud layer, with other upper or lower layers. + +Technlogy Preview 3 : +- Fully move layer management from BaseForm to BaseFormLayer. +- Start vegetation system. +- Allow render saving in HDR compatible format. +- Add clouds to explorer with 3d textures. +- Start using OpenCL to optimize rendering. +- Restore render progress. +- Rethink the quality settings and detail smoothing in the distance. + => When quality setting is set to 10, add boost options + => Add detail boost (adds granularity) + => Add step boost (for marching algorithms) +- Add logarithmic sliders for some float values. +- Improve previews. + => Add user markers on OSD. + => Add areas marking. +- Add a noise automatic filler. - Fix the distorted sun appearance. -- Improve curve editor. - => Add curve modes - => Add logarithmic mode - => Add zoom and scrolling - Lock some previews together (eg: terrain height and colored preview). - Find a new licence. Technology Preview 4 : -- Restore render progress. -- Store the terrain canvases in a tree to allow "multi-res" edition. -- Implement Sub Surface Scattering for water. +- Implement Sub Surface Scattering for water, textures and clouds. +- Implement earth curvature. - Use bicubic interpolation for antialiasing. - Allow for larger renders/antialias (will need several two-pass chunks). -- Add basic vegetation system ? - Add a progress indicator on previews. - Multi threaded first pass. - Mark modified tabs and ask for losing modifications (idem for layers). @@ -56,6 +52,7 @@ Technology Preview 4 : - Water and terrain LOD moves with the camera, fix it like in the wanderer. - Improve 3d explorer => Restore LOD and intelligent poly count (and raise max tessellation) + => Better handling of high altitude => Interrupt chunk rendering when quitting dialog => Don't display the water if it's below all ground => Try to overcome the near frustum cutting diff --git a/gui_qt/baseform.cpp b/gui_qt/baseform.cpp index b281e49..9a88775 100644 --- a/gui_qt/baseform.cpp +++ b/gui_qt/baseform.cpp @@ -212,6 +212,18 @@ void BaseForm::revertConfig() } } + for (int i = 0; i < _inputs_list.size(); i++) + { + if (_with_layers && _layer_list->count() == 0) + { + _inputs_list[i]->checkVisibility(false); + } + else + { + _inputs_list[i]->checkVisibility(true); + } + } + updatePreviews(); //configChangeEvent(); diff --git a/gui_qt/formatmosphere.cpp b/gui_qt/formatmosphere.cpp index 4e7dfdc..4d62a3c 100644 --- a/gui_qt/formatmosphere.cpp +++ b/gui_qt/formatmosphere.cpp @@ -78,13 +78,13 @@ FormAtmosphere::FormAtmosphere(QWidget *parent): previewEast = new PreviewSkyEast(this); addPreview(previewEast, QString(tr("East preview"))); - addInputEnum(tr("Color model"), (int*)&_definition->model, QStringList(tr("Preetham/Shirley analytic model")) << tr("Bruneton/Neyret precomputed model")); + addInputEnum(tr("Color model"), (int*)&_definition->model, QStringList(tr("Simplified model (with weather)")) << tr("Complex model")); addInputInt(tr("Day time (hour)"), &_definition->hour, 0, 23, 1, 10); addInputInt(tr("Day time (minute)"), &_definition->minute, 0, 59, 1, 10); - addInputColor(tr("Sun color"), &_definition->sun_color); + //addInputColor(tr("Sun color"), &_definition->sun_color); addInputDouble(tr("Sun radius"), &_definition->sun_radius, 0.0, 0.1, 0.001, 0.01); addInputDouble(tr("Influence of skydome on lighting"), &_definition->dome_lighting, 0.0, 2.0, 0.01, 0.1); - addInputDouble(tr("Humidity"), &_definition->humidity, 0.0, 1.0, 0.01, 0.1); + addInputDouble(tr("Humidity"), &_definition->humidity, 0.0, 1.0, 0.01, 0.1)->setVisibilityCondition((int*)&_definition->model, 0); revertConfig(); } diff --git a/gui_qt/widgetexplorer.cpp b/gui_qt/widgetexplorer.cpp index 6d34eb4..ad59a61 100644 --- a/gui_qt/widgetexplorer.cpp +++ b/gui_qt/widgetexplorer.cpp @@ -398,11 +398,6 @@ void WidgetExplorer::paintGL() QTime start_time; double frame_time; - if (_current_camera.location.y > 30.0) - { - _current_camera.location.y = 30.0; - } - cameraValidateDefinition(&_current_camera, 1); _renderer.camera_location = _current_camera.location; diff --git a/lib_paysages/camera.c b/lib_paysages/camera.c index 859c889..76ffe00 100644 --- a/lib_paysages/camera.c +++ b/lib_paysages/camera.c @@ -96,6 +96,11 @@ void cameraValidateDefinition(CameraDefinition* definition, int check_above) } } + if (definition->location.y > 100.0) + { + definition->location.y = 100.0; + } + definition->forward.x = 1.0; definition->forward.y = 0.0; definition->forward.z = 0.0;