Commit graph

586 commits

Author SHA1 Message Date
Michaël Lemaire c7e868ef11 Better OpenGL error checking + opengl header refactoring 2015-12-03 23:04:50 +01:00
Michaël Lemaire d2efb599d9 Made the vegetation impostors face the camera 2015-11-29 19:18:36 +01:00
Michaël Lemaire 9d7a7a0ff7 Added vegetation impostors to OpenGL renderer
This is currently an unoptimized and broken version, to be improved
2015-11-25 23:15:58 +01:00
Michaël Lemaire 9e3c43f510 Merge branch 'master' into vegetation 2015-11-24 00:59:28 +01:00
Michaël Lemaire 5e9b37d52c Fixed small memory leaks and uninitialized values 2015-11-24 00:58:09 +01:00
Michaël Lemaire 01992a0019 Fixed vegetation definition, due to layers refactoring in master 2015-11-20 01:16:48 +01:00
Michaël Lemaire 8cf2881a73 Merge branch 'master' into vegetation 2015-11-20 01:10:06 +01:00
Michaël Lemaire 2b65f1d26a Refactored layers system to work better as DefinitionNode
It now features undo/redo of layer creation and removal
2015-11-20 01:07:31 +01:00
Michaël Lemaire 5f0b3734cf Switched to C++-14 2015-11-20 01:04:21 +01:00
Michaël Lemaire 236db15fdb Merge branch 'master' into vegetation 2015-11-18 22:22:30 +01:00
Michaël Lemaire 10f8f46ca6 Fixed CanvasPortion using the same temp files across processes 2015-11-18 22:22:09 +01:00
Michaël Lemaire dd7baf6db5 Merge branch 'master' into vegetation 2015-11-18 19:41:54 +01:00
Michaël Lemaire 6166031c8b Speeded up compile time
Reworked *_global.h heavy inclusions
2015-11-18 19:37:00 +01:00
Michaël Lemaire 63a9f780ca Merge branch 'master' into vegetation 2015-11-18 18:39:50 +01:00
Michaël Lemaire 65b4cd150c Fixed render camera size being inconsistent between renderers 2015-11-18 18:39:31 +01:00
Michaël Lemaire 394ff3b0ae Format 2015-11-18 17:22:33 +01:00
Michaël Lemaire e2d03642f4 Added some vegetation rendering optimizations 2015-11-10 01:12:14 +01:00
Michaël Lemaire f990ec4032 Added control of perspective correction
This allows for some optimization in render tests and
improves low-quality render times
2015-11-10 00:34:19 +01:00
Michaël Lemaire 159e0f7e81 Optimized vegetation branches rendering 2015-11-10 00:15:30 +01:00
Michaël Lemaire 9a096ec329 Merge branch 'master' into vegetation
Conflicts:
	src/basics/Disk.cpp
	src/basics/Disk.h
	src/basics/SpaceSegment.cpp
	src/definition/DefinitionNode.cpp
	src/definition/DefinitionNode.h
	src/definition/Scenery.cpp
	src/definition/Scenery.h
	src/definition/SurfaceMaterial.cpp
	src/definition/SurfaceMaterial.h
	src/definition/TextureLayerDefinition.cpp
	src/definition/definition_global.h
	src/interface/commandline/tests.cpp
	src/render/opengl/OpenGLRenderer.cpp
	src/render/software/SoftwareCanvasRenderer.cpp
	src/render/software/SoftwareCanvasRenderer.h
	src/render/software/SoftwareRenderer.h
	src/render/software/TerrainRasterizer.cpp
	src/render/software/TerrainRasterizer.h
	src/render/software/TerrainRenderer.h
	src/render/software/software_global.h
2015-11-09 22:38:00 +01:00
Michaël Lemaire 88d2a78b70 Enforced coding style using clang-format 2015-11-09 22:30:46 +01:00
Michaël Lemaire 72877c4361 Tweaked vegetation rendering, and improved render tests 2015-11-09 01:07:33 +01:00
Michaël Lemaire bdb2a3edb8 Merge branch 'master' into vegetation 2015-11-08 23:33:09 +01:00
Michaël Lemaire d82fc73531 Small optimizations (use reference to avoid object copy) 2015-11-08 23:32:52 +01:00
Michaël Lemaire 1e12b8ac9c vegetation: Now using sphere cap for leaves, to avoid flat effect 2015-11-04 01:08:48 +01:00
Michaël Lemaire f68bba75bb Merge branch 'master' into vegetation 2015-11-02 23:40:00 +01:00
Michaël Lemaire dc27590496 Improved estimated rendering time 2015-11-02 23:39:34 +01:00
Michaël Lemaire 2560fe2c53 Fixed holes in vegetation rendering 2015-11-02 23:00:02 +01:00
Michaël Lemaire 68945111d1 Improved vegetation rendering
- Added early check on terrain height range during iteration
- Added test render of vegetation model
- Tweaked basic tree model
2015-11-02 20:14:35 +01:00
Michaël Lemaire cd006e1093 Fixed vegetation renderer being randomly enabled 2015-10-19 19:14:45 +02:00
Michaël Lemaire 030be52f6f Merge branch 'master' into vegetation
Conflicts:
	src/definition/definition.pro
	src/render/software/software.pro
2015-10-19 17:40:17 +02:00
Michaël Lemaire ca7bd84308 Simplified project files + lazy init of data files 2015-10-19 01:39:22 +02:00
Michaël Lemaire d937bd08f6 vegetation: Added basic distribution algorithm 2015-10-19 00:30:20 +02:00
Michaël Lemaire 0ddec2393d Merge branch 'master' into vegetation 2015-10-19 00:29:47 +02:00
Michaël Lemaire 75e32beea7 Added NoiseNode 2015-10-19 00:26:25 +02:00
Michaël Lemaire 48dc1a8f25 Refactored vegetation presence 2015-10-18 22:15:19 +02:00
Michaël Lemaire cd7f30ecae Add ability to disable vegetation rendering
It is disabled in opengl rendering for now
2015-10-18 17:35:42 +02:00
Michaël Lemaire b430f6037e First draft of vegetation layers (WIP) 2015-10-18 17:26:19 +02:00
Michaël Lemaire 52bad18d26 Added "backface culling" and "previous fragment" in rasterizers
Backface culling speeds up rasterization
Previous fragment will be used later by vegetation rasterizer
2015-10-16 00:51:46 +02:00
Michaël Lemaire ac1b6a909b Extracted RayCastingResult header to speed-up compiling 2015-10-16 00:28:07 +02:00
Michaël Lemaire e81487ae08 Added safety offset on lighting
This avoids shadow algorithm to hit the surface it is currently checking
2015-10-16 00:14:54 +02:00
Michaël Lemaire cafa9b4c74 Added missing SurfaceMaterial::copy 2015-10-15 20:28:05 +02:00
Michaël Lemaire 2b3ecc7e35 Added geometry primitives 2015-10-15 20:21:32 +02:00
Michaël Lemaire 91cd564c59 Added SpaceGridIterator for SpaceSegment 2015-10-15 20:01:08 +02:00
Michaël Lemaire a91fa41f8f Added Vector3::randomInSphere
For future use in vegetation
2015-10-15 19:51:24 +02:00
Michaël Lemaire cd144b886c Added TimeManager with basic wind control for videos 2015-10-15 17:52:03 +02:00
Michaël Lemaire c62cf3a0a4 Improved "near_frustum" render test 2015-10-09 00:55:36 +02:00
Michaël Lemaire 2be80bf8e2 Fixed aerial perspective being applied at wrong location in clouds
It was applied at the enter point of the walking algorithm, which
was the camera when it was inside a cloud layer.

Now it is applied at the first found segment, which is still not
optimal but better.

The bruneton model was also fixed to not produce black results for
aerial perspective exactly at the camera location.
2015-10-09 00:43:32 +02:00
Michaël Lemaire a5c36f90f0 Fixed CLI overriding daytime even when not specified 2015-10-08 23:48:19 +02:00
Michaël Lemaire 3fc8b1c98f Added automatic tessellation near camera frustum culling
This allows the camera nearer the ground
and fixes holes in lower quality renders
2015-10-08 19:20:44 +02:00
Michaël Lemaire 652c66a2fa Fixed a random behavior in god rays tests
Due to an uninitialized value
2015-10-08 00:47:14 +02:00
Michaël Lemaire 98e3128c31 Added /atmosphere/godrays/ definition node 2015-09-30 01:08:15 +02:00
Michaël Lemaire b045b731ad Added god rays manager (initial implementation) 2015-09-29 22:31:25 +02:00
Michaël Lemaire 6f2d23d960 Refactored lighting manager 2015-09-25 00:12:31 +02:00
Michaël Lemaire ba02442fea Slightly improved cloud lighting 2015-09-24 00:13:52 +02:00
Michaël Lemaire 704fe839d9 Smoothed opacity in clouds 2015-09-22 18:17:00 +02:00
Michaël Lemaire 273585dd8a Fixed tool camera not reverting back to previous camera mode 2015-09-21 23:17:47 +02:00
Michaël Lemaire 8a9c3d4b83 Added /atmosphere/sun_radius property
Also added the tool camera mode to focus on the sun while altering its radius
2015-09-21 23:12:43 +02:00
Michaël Lemaire 63eb7b53eb Fixed watchers that could be added twice to the same definition node 2015-09-21 23:10:43 +02:00
Michaël Lemaire c51d6d2d35 Fixed terrain painting not updating has_painting 2015-09-21 19:37:17 +02:00
Michaël Lemaire ec69975146 Fixed uninitialized texture id in opengl
This could cause an invalid operation error at texture binding
2015-09-21 21:01:44 +02:00
Michaël Lemaire 7658bf256f Optimized terrain rendering
Painted height map is not queried anymore when empty
2015-09-21 01:36:03 +02:00
Michaël Lemaire aacb4addd5 Optimized texture rendering
Texture layers fully masked by another are not shaded anymore
2015-09-21 00:42:58 +02:00
Michaël Lemaire 6e45fc4c2f Small performance improvement in opengl drawing 2015-09-15 18:18:24 +02:00
Michaël Lemaire 4fb7078815 Added rendered picture saving ui 2015-09-15 01:26:05 +02:00
Michaël Lemaire 20c03f84b7 Added an initial loading screen 2015-09-14 19:25:54 +02:00
Michaël Lemaire 84cb69e127 Added cancel button on render dialog 2015-09-14 01:35:25 +02:00
Michaël Lemaire 005c24fa85 Tweaked window and render sizes to keep full hd ratio
Also added medium render size
2015-09-14 00:48:55 +02:00
Michaël Lemaire 0c8a88cddb Added render time 2015-09-13 22:38:44 +02:00
Michaël Lemaire c6272846ea Fixed camera Z-culling planes
This fixes artifacts in the sky rasterization
2015-09-13 20:08:14 +02:00
Michaël Lemaire cd7eb2f669 Refactored clouds rendering quality factor 2015-09-13 18:58:11 +02:00
Michaël Lemaire 6a8fc7b102 Fixed atmosphere daytime control
Minute+1 button did add a wrong amount of time
2015-09-10 23:43:25 +02:00
Michaël Lemaire 2b5b35e3b4 Fixed specular lighting on water not being consistent between opengl and software 2015-09-10 23:41:15 +02:00
Michaël Lemaire 3c351bbe5c Color, Vector3 and CanvasFragment are now PODs
This can speed up CanvasPortion initialization
2015-09-10 22:06:50 +02:00
Michaël Lemaire 8d33a11dc5 Added rasterization quality control 2015-09-10 19:33:52 +02:00
Michaël Lemaire 6a45c5dba7 Refactored quality control of terrain rendering
Terrain scaling factor was removed for quality consistency
2015-09-10 18:16:57 +02:00
Michaël Lemaire 4fcf1d071c Added render tests from command line 2015-09-10 00:40:47 +02:00
Michaël Lemaire 035c957054 Fixed small UI issues 2015-09-09 00:08:01 +02:00
Michaël Lemaire 647e185e52 Added IntNode, IntPropertyBind, PanelPictureChoice and /water/model property 2015-09-08 23:52:34 +02:00
Michaël Lemaire 982af74c2d Added /water/reflection property 2015-09-08 01:00:34 +02:00
Michaël Lemaire 3cb287dfeb Removed dependency to GLU 2015-09-07 01:20:57 +02:00
Michaël Lemaire a96699dece Added mouse tracking on 3d view for future operations 2015-09-07 01:15:59 +02:00
Michaël Lemaire 1361c5c654 ui: Fixed some state issues 2015-08-28 11:40:35 +02:00
Michaël Lemaire 45f10440ec Fixed top-down camera switching 2015-08-26 00:49:52 +02:00
Michaël Lemaire 0cf8b0fcee Fixed opengl humidity rendering 2015-08-26 00:40:10 +02:00
Michaël Lemaire 623a3606eb Fixed UI not reverting to previous state when exiting render dialog 2015-08-26 00:28:12 +02:00
Michaël Lemaire c450774995 Applied atmosphere humidity to opengl renderer 2015-08-25 23:33:47 +02:00
Michaël Lemaire ffe5b38ad8 Fixed a segfault at application exit 2015-08-25 01:09:11 +02:00
Michaël Lemaire 98f0708d3e Fixed OpenGL rendering ratio being discarded on camera move 2015-08-25 00:52:33 +02:00
Michaël Lemaire 1077e4dca3 Fixed OpenGL viewport being updated at each frame
That could cause ratio flickering on paint() on some devices
2015-08-24 19:38:59 +02:00
Michaël Lemaire 9b2c60fe16 DefinitionNode.copy now copies children automatically 2015-08-24 01:23:05 +02:00
Michaël Lemaire c199bef7f2 Added /atmosphere/humidity control 2015-08-24 01:19:19 +02:00
Michaël Lemaire 625507e11d Fixed mouse events being processed by both controls and OpenGLView 2015-08-24 00:53:24 +02:00
Michaël Lemaire b2a458b1f2 Refactoring of QML states 2015-08-24 00:39:31 +02:00
Michaël Lemaire d6233c70f0 Fixed small memory leaks 2015-08-23 22:44:45 +02:00
Michaël Lemaire 7c7b6043c5 Improved render progress.
A bug was also fixed where some canvas pixels were shaded twice,
leading to a performance loss.
2015-08-23 20:22:37 +02:00
Michaël Lemaire e8d91e30ac Partially worked around atmosphere artifacts using an offset to ground 2015-08-21 01:19:55 +02:00
Michaël Lemaire 0579cc2c3c Added shortcut information in tooltips 2015-08-21 00:46:42 +02:00
Michaël Lemaire edc60113d9 Added render buttons 2015-08-21 00:41:14 +02:00
Michaël Lemaire 28c9c08d74 Added water rendering toggle in opengl 2015-08-21 00:25:34 +02:00
Michaël Lemaire 13c8816f9e Fixed water height not resetting when creating new scene 2015-08-20 23:11:07 +02:00
Michaël Lemaire f19433457e More detailed terrain tessellation in opengl renderer 2015-08-20 23:07:09 +02:00
Michaël Lemaire 7dd70e7bca Tweaked camera speed 2015-08-20 19:02:11 +02:00
Michaël Lemaire 05d0680210 Top-down camera is now set relative to render camera 2015-08-20 01:30:46 +02:00
Michaël Lemaire 5c90e1ef07 Improved "time of day" UI 2015-08-20 01:15:08 +02:00
Michaël Lemaire bbec14d904 Fixed atmosphere saving to file 2015-08-19 22:07:44 +02:00
Michaël Lemaire 87acc42041 Experimental scenery generate/save/load from UI 2015-08-19 20:06:47 +02:00
Michaël Lemaire 3599c3aecf Fixed clouds layers being deleted in scenery by opengl renderer 2015-08-19 19:28:36 +02:00
Michaël Lemaire 0058a0a8e3 Switched to RGB material colors
...to avoid otherwise unused HSL conversion, which causes problems
for some RGB values (like Color(1, 0, 0))
2015-08-19 19:14:59 +02:00
Michaël Lemaire fde385a51a Fixed initial textures definition 2015-08-19 18:14:15 +02:00
Michaël Lemaire 100ee0eec1 Fixed underwater terrain detection in opengl renderer 2015-08-19 17:22:14 +02:00
Michaël Lemaire 95d2f55ebf Fixed atmosphere daytime control binding 2015-08-19 01:18:16 +02:00
Michaël Lemaire 9d077d78f5 Added FloatPropertyBind class
This allows to easily bind a Qml property to a FloatNode,
synchronizing values both ways.
2015-08-19 01:17:49 +02:00
Michaël Lemaire 9a177352ba Fixed OpenGL camera management 2015-08-18 22:47:18 +02:00
Michaël Lemaire 56dae1e38e Don't copy scenery in the renderer 2015-08-18 22:29:18 +02:00
Michaël Lemaire db0be5204f Switched /atmosphere/daytime to new definition system 2015-08-18 20:31:11 +02:00
Michaël Lemaire e96fdd9721 Added pause of opengl renderer while rendering picture 2015-08-18 19:12:54 +02:00
Michaël Lemaire 0cf2add322 Fixed UI elements visibility and input issues 2015-08-18 18:22:16 +02:00
Michaël Lemaire 8fa0d8af29 Added DefinitionWatcher system
Also switched to the new definition system for /terrain/water_height
2015-08-17 22:55:30 +02:00
Michaël Lemaire 67bd80fba5 Fixed undo/redo system 2015-08-17 18:18:31 +02:00
Michaël Lemaire 5afd5ec24a Added DiffManager system, with simple undo/redo 2015-08-17 00:29:54 +02:00
Michaël Lemaire 1eef1ef429 Start of undo/redo system (added DefinitionDiff) 2015-08-16 23:01:56 +02:00
Michaël Lemaire d78bd2553c Added unit tests for FloatNode 2015-08-14 00:22:20 +02:00
Michaël Lemaire d65bc18342 Fixed compiler warnings 2015-08-13 23:59:27 +02:00
Michaël Lemaire 0fc10fd28b Added FloatNode and smart save/load of definition tree
Node children are now saved with their name, and if a child is not found,
it is skipped. This will allow for backward/forward compatibility of saves.
2015-08-13 23:46:50 +02:00
Michaël Lemaire 6062c755b5 Fixed layers saving/loading
Global scenery save/load testing was also improved to detect these cases better
2015-08-13 19:49:16 +02:00
Michaël Lemaire 46e9e73793 Refactored logging system using iostream 2015-08-13 00:33:16 +02:00
Michaël Lemaire a8ae50df94 Removed unused preview renderers 2015-08-12 22:53:54 +02:00
Michaël Lemaire 42d3ae4ceb Renamed BaseDefinition to DefinitionNode 2015-08-12 22:21:10 +02:00
Michaël Lemaire a4edc9568b Restored progress display in CLI render 2015-08-12 22:11:26 +02:00
Michaël Lemaire 6f8e0c3cfd Fixed some memory issues 2015-08-12 19:29:28 +02:00
Michaël Lemaire 44c03e46a9 Tweaked opengl terrain tessellation to speed up rendering 2015-08-12 17:26:17 +02:00
Michaël Lemaire 26fb112da1 Added name to all BaseDefinition and toString representation
Also fixed deletion of children in the definition tree,
to handle dynamic and static destructor calls.
2015-08-12 17:02:27 +02:00
Michaël Lemaire 7d79b6f772 Added scenery save/load testing 2015-08-04 00:00:56 +02:00
Michaël Lemaire 0585bc4b6f Removed old QtWidget UI 2015-07-28 19:03:10 +02:00
Michaël Lemaire fc15f7d9b8 Added ground texture resetting while changing time of day 2015-07-26 18:30:30 +02:00
Michaël Lemaire e84698dbb3 Added shortcut to show previous render again 2015-07-23 00:28:27 +02:00
Michaël Lemaire efcbeecf3e Added speed factor in camera control 2015-07-22 21:30:56 +02:00
Michaël Lemaire 8c2091de03 Added render progress bar 2015-07-22 19:23:22 +02:00
Michaël Lemaire 2de920e091 Fixed quick ui camera to stay above ground and water 2015-07-22 18:39:46 +02:00
Michaël Lemaire 2c877953e7 Improved basic quick ui usability 2015-07-22 18:05:24 +02:00
Michaël Lemaire 261eb5a674 opengl: Replaced temp lighting with sun transmission lighting 2014-11-21 11:40:47 +01:00
Michaël Lemaire f7715b612e Changed some old int-bools to true booleans 2014-11-21 09:45:19 +01:00
Michaël Lemaire 1cc3a4d625 quick ui : Added basic camera controls 2014-09-26 17:46:39 +02:00
Michaël Lemaire 57b90af132 Added progressive camera change to opengl view 2014-09-18 17:38:37 +02:00
Michaël Lemaire 872e191fea Merge branch 'master' into quick_ui 2014-09-18 11:39:56 +02:00
Michaël Lemaire 553b6b2896 Improved data files locator 2014-09-18 11:39:36 +02:00
Michaël Lemaire f869c2a01d Fix compile in debug mode 2014-09-18 10:09:25 +02:00
Michaël Lemaire 0c3a498cae Merge branch 'master' into quick_ui 2014-09-18 09:25:16 +02:00
Michaël Lemaire 4a01a4314a Refactored TerrainHeightMap to PaintedGrid for future reuse 2014-09-15 12:32:27 +02:00