Commit graph

209 commits

Author SHA1 Message Date
Michaël Lemaire 230fd6644e Merge branch 'master' into vegetation
Conflicts:
	src/basics/Color.inline.cpp
2015-12-09 00:40:47 +01:00
Michaël Lemaire c12cd91f9b Removed header inlining of Vector3 and Color methods
This made cross-platform compiling and profiling more complicated
2015-12-09 00:32:29 +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 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 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 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 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 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 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 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 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 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 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 0c8a88cddb Added render time 2015-09-13 22:38:44 +02:00
Michaël Lemaire cd7eb2f669 Refactored clouds rendering quality factor 2015-09-13 18:58:11 +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 982af74c2d Added /water/reflection property 2015-09-08 01:00:34 +02:00
Michaël Lemaire c450774995 Applied atmosphere humidity to opengl renderer 2015-08-25 23:33:47 +02:00
Michaël Lemaire c199bef7f2 Added /atmosphere/humidity control 2015-08-24 01:19:19 +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 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 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 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 d65bc18342 Fixed compiler warnings 2015-08-13 23:59:27 +02:00
Michaël Lemaire f7715b612e Changed some old int-bools to true booleans 2014-11-21 09:45:19 +01:00
Michaël Lemaire 06a8227de3 Added quick render to QtQuick UI 2014-09-09 17:56:52 +02:00
Michaël Lemaire 818d82607e Optimized lighting of underwater terrain
The water light filter is now applied first to avoid computing
terrain shadows when no light passes through the water layer.
2014-08-22 17:34:07 +02:00
Michaël Lemaire 99aff57d6c Optimized output picture saving 2014-08-21 22:23:04 +02:00
Michaël Lemaire 0abfa97295 Merge branch 'cloud_types'
Conflicts:
	src/render/software/software.pro
2014-08-21 21:31:29 +02:00
Michaël Lemaire 1afcb907c4 Optimized and fixed canvas portion merging in final picture 2014-08-21 15:30:09 +02:00
Michaël Lemaire 04f6ab732d Normalize colors before writing to final picture 2014-08-21 14:53:49 +02:00
Michaël Lemaire c39ef6adce Restored final picture saving (in constant memory usage) 2014-08-21 12:36:28 +02:00
Michaël Lemaire 6c4a16966c Larger maximal canvas portion size 2014-08-21 10:11:44 +02:00
Michaël Lemaire 0bb1cf5bed Added canvas portion writing to disk 2014-08-21 09:58:11 +02:00
Michaël Lemaire 13904be001 Optimization: replaced some divisions by inverse multiplications 2014-08-20 16:45:45 +02:00
Michaël Lemaire 14e0320848 Restored (partially) render progress 2014-08-20 15:58:37 +02:00
Michaël Lemaire 18a669675f Restored tone mapping control of canvas preview 2014-08-20 14:31:28 +02:00
Michaël Lemaire 8ef8b0386c Canvas preview widget is immediately sized (so that render dialog don't resize later) 2014-08-20 14:23:35 +02:00
Michaël Lemaire 2b135eedac Removed old render_progress in SoftwareRenderer 2014-08-19 14:20:37 +02:00
Michaël Lemaire 1bf6d9382b Removed size information from SoftwareRenderer + removed full render tests 2014-08-19 12:22:27 +02:00
Michaël Lemaire 0c48fb075f Rasterizers now use their own interrupt system 2014-08-19 11:44:54 +02:00
Michaël Lemaire 915f43503e Removed unused ParallelQueue 2014-08-19 11:32:23 +02:00
Michaël Lemaire dc3584cefc Check canvas preview coordinates to avoid segfault 2014-08-19 11:25:27 +02:00
Michaël Lemaire 8f24d54568 Restored render interruption 2014-08-19 09:18:55 +02:00
Michaël Lemaire 31b74c660e Iterate over portions to render the whole canvas 2014-08-18 17:33:15 +02:00
Michaël Lemaire 3a2ec1c75f Only allocate canvas portion pixels when needed
This will allow for larger renders in constant memory footprint
2014-08-18 17:16:17 +02:00
Michaël Lemaire c9fa33984b Restored color profile in canvas preview 2014-08-18 16:33:09 +02:00
Michaël Lemaire 9c2d545e6a Fixed parallel canvas shading 2014-08-18 16:25:44 +02:00
Michaël Lemaire b5ee4c432f Added parallel pixel shader for second-pass rendering 2014-08-18 16:04:46 +02:00
Michaël Lemaire 0566f2bdd8 Refactored ParallelWork for better performance 2014-08-18 15:20:04 +02:00
Michaël Lemaire 2aeecdec62 WIP on canvas pixel shading 2014-08-18 12:17:16 +02:00
Michaël Lemaire b86669c5a0 Added color to rasterized polygons 2014-08-16 13:34:55 +02:00
Michaël Lemaire bc34a2b823 Removed RenderArea and added terrain rasterization to canvas 2014-06-18 22:10:46 +02:00
Michaël Lemaire f94d93ae60 Fixed canvas Z-index 2014-06-18 20:10:05 +02:00
Michaël Lemaire cf58bea1b7 WIP on new canvas system 2014-06-12 17:45:59 +02:00
Michaël Lemaire 8099361cc9 WIP on new canvas system 2014-06-10 15:13:16 +02:00
Michaël Lemaire 43431aae87 New Canvas software rendering structure (WIP) 2014-06-05 17:12:49 +02:00
Michaël Lemaire c57c5f45d4 Merge branch 'master' into water_shader 2014-05-20 09:55:44 +02:00
Michaël Lemaire 1158aa248b cloud_types: Added cumulo-nimbus model 2014-03-18 21:27:35 +01:00