paysages : Small changes.

git-svn-id: https://subversion.assembla.com/svn/thunderk/paysages@498 b1fd45b6-86a6-48da-8261-f70d1f35bdcc
This commit is contained in:
Michaël Lemaire 2013-01-16 15:56:17 +00:00 committed by ThunderK
parent 614243b58d
commit b59b25d599
5 changed files with 49 additions and 40 deletions

61
TODO
View file

@ -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

View file

@ -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();

View file

@ -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();
}

View file

@ -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;

View file

@ -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;