Commit Graph

72 Commits (668fd219cc7d18ca3887ea0125a694edaea02747)

Author SHA1 Message Date
Levin Li 668fd219cc Render lines with triangles 2021-01-03 17:21:55 +08:00
Levin Li e2b9598f17 Always use gl_PointSize in shader to set point size 2020-12-04 19:46:32 +08:00
Levin Li 1f150db611 separate modelview and projection 2020-10-06 13:39:09 +08:00
Hleb Valoshka 41f6b95c72 Add state tracking for depth 2020-07-08 15:09:18 +03:00
Hleb Valoshka e2bbd838a5 Add state tracking for blending 2020-07-08 15:09:18 +03:00
Hleb Valoshka 4619ba1a1a Check angle between normal and a light when applying shadow
to avoid shadow projection on back side (if looking from the light)
2020-06-15 19:27:46 +03:00
Hleb Valoshka c588f80824 OpenGL ES 2.0 initial support 2020-06-15 19:27:46 +03:00
Hleb Valoshka 1fb1f2de91 Replace fixed function GL code with GL ES compatible one 2020-05-12 15:59:56 +03:00
Hleb Valoshka e5d54df6bb Initial implementation of self shadowing
Known bugs and limitations:
  * Only the 1st light source casts shadows.
  * Thin objects have incorrect shadows, see ISS.
2020-04-03 11:31:09 +03:00
Hleb Valoshka bd7f9ebc9b Use libepoxy instead of GLEW
Unlike GLEW libepoxy supports OpenGL ES and better handles cases with
functions provided by different extensions, e.g. the same functions
provided by vendor/EXT/ARB/core.
2020-03-26 11:24:56 +03:00
Hleb Valoshka 91c09087f6 Use GL3/GLES compatible particle rendering
Closes: #549
2020-03-11 01:20:17 +03:00
Hleb Valoshka 32eaa68d0a Remove fixed pipeline calls 2019-12-05 11:37:33 +03:00
Hleb Valoshka f8d3815a70 Move duplicated setVertexArrays to RenderContext 2019-08-16 09:49:01 +03:00
Hleb Valoshka a93befe941 Remove uneeded #include "vecgl.h" 2019-07-09 23:38:41 +03:00
Hleb Valoshka dbd7090117 Make ShaderManager private property of Renderer 2018-12-11 20:32:13 +03:00
Hleb Valoshka eab70c96cb Fix more coverity issues
Mostly uninitialized variables plus one memory leak
2018-10-30 23:52:19 +03:00
Hleb Valoshka 85f6dad804 Remove code used in old rendering paths 2018-10-30 23:52:19 +03:00
Hleb Valoshka 717bf3413d Rewrite star rendering using GLSL
Shader manager needs more attention though.
2018-10-23 00:03:39 +03:00
Hleb Valoshka 73a869c137 Use core OpenGL2 functions instead of their ARB versions 2018-10-07 20:45:01 +03:00
Hleb Valoshka b082d5f47f Automatically convert to c++11 using clan-tidy
+ manual cleanups
2018-09-22 23:42:02 +03:00
Hleb Valoshka 5a5b06481f Fix the most serious fixes found by coverity
… resource leaks, null pointers dereference
2018-09-22 23:41:58 +03:00
Hleb Valoshka 882e4ecf28 fix whitespaces and indents
trailing spaces are removed
tabs are replaced with 4 spaces

# Conflicts:
#	src/celengine/cmdparser.cpp
#	src/celengine/command.cpp
#	src/celestia/celestiacore.cpp
#	src/celestia/celestiacore.h
#	src/celestia/qt/qtappwin.cpp
#	src/celestia/qt/qtglwidget.cpp
#	src/celestia/win32/winmain.cpp
2018-09-22 23:41:57 +03:00
Dmitry Brant a25d26720c Adapt code to Eigen 3.3
No functional changes, just adapting to API changes in Eigen.
2018-09-22 17:08:07 +03:00
Chris Laurel 52b1dccdff Fixed eclipse shadows on non-spherical planets (especially noticeable on
Saturn.) Fix affects the GLSL/OpenGL 2.0 render path only.
2010-04-23 22:14:44 +00:00
Chris Laurel 31a31d4e2f - Moved cmod code into a separate module celmodel.
- Updated cmodtools to use celmodel.
- Improved 3ds file loader to support multiple materials per mesh.
2010-02-05 20:05:18 +00:00
Chris Laurel 0bc83a501a Added missing #includes of NewStdVector to rendcontext.cpp and shadermanager.cpp. 2009-10-27 22:29:41 +00:00
Chris Laurel dcf9232c08 Refactored some shadowing/eclipse code in the renderer
- Enabled ring shadows on moons and other objects that aren't themselves surrounded by
  ring systems.
- Use texture LOD bias to add blurriness to ring shadows (a result of the finite
  size of the light source.)
- Calculate ring phase function per-pixel instead of per-vertex
- Implemented more realistic rendering of unlit side of ring systems
- Used new Eigen's NewStdVector for vectors containing fixed-sized vectorizable
  objects.
2009-10-27 22:02:01 +00:00
Chris Laurel f5d97be5c9 More GLEW-related cleanup.
- Added missing GLEW_STATIC define to VC++ project file
- Fixed Qt4 build to use GLEW
- Stripped out more references to old glext functions
- Fixed miscellaneous compiler warnings.
2009-08-15 00:48:42 +00:00
Chris Laurel 9d373fd041 Switched from using custom GL extension handling code to GLEW library. 2009-08-14 22:39:54 +00:00
Chris Laurel afd7c78574 More Eigenization changes. 2009-08-06 00:41:24 +00:00
Chris Laurel 157b720854 Removed more code that used the old vector classes. 2009-08-05 21:13:29 +00:00
Chris Laurel c26ea667f2 Eigenized old sphere mesh code (used only for handling .cms mesh files now.) 2009-07-23 23:19:26 +00:00
Chris Laurel 7272945657 First round of Eigen-izing the core Celestia code. 2009-07-15 03:06:30 +00:00
Chris Laurel 14e32a5a61 Fixed broken point sprites problem caused by the fix for mesh files without texture coordinates. 2009-03-18 18:44:38 +00:00
Chris Laurel 7911c6ddbe - Implemented consistent behavior for models with no texture coordinates. Fixes 'flickering' of colors on no-texcoord models used in stc files (and in ssc files with a texture override.) 2009-03-09 19:01:53 +00:00
Andrew Tribick 149959f8b2 Fixed some compiler warnings when building under gcc 4.3. 2009-01-26 20:49:35 +00:00
Chris Laurel 600a2a2ab0 Improve support for per-vertex colors (unlit models only right now.) 2008-08-07 00:42:18 +00:00
Chris Laurel 586b291af3 Added support for premultiplied alpha blend mode. 2008-08-04 20:10:06 +00:00
Chris Laurel 99ee3a4102 Renderer changes:
- Added camera orientation property to RenderContext, to be used with software
path for point sprites.
- Enabled location label color overrides
2008-07-25 23:31:00 +00:00
Da Woon Jung e59f4b4b54 HDR bloom, adaptive exposure, calibrated nightlights - disabled by default, enable with USE_HDR and HDR_COMPRESS. 4 new vertex programs added. 2008-03-25 00:23:16 +00:00
Chris Laurel f48a5b8566 Fixed bug 1855894, that caused planets to show up black when:
- scattering atmospheres were enabled, and
- a mesh was used, and
- the planet texture had an atmosphere
The fix is to not disable z writes when atmospheric scattering is enabled. This
prevents the atmosphere shell from occluding the planet itself.
2008-01-02 23:52:30 +00:00
Chris Laurel 079e04aad7 Changed shaders so that night texture blend factor can be computed in the pixel shader instead of the vertex shader, which saves an extra interpolator. 2007-05-15 18:14:57 +00:00
Chris Laurel 72542b240d Properly fixed point sprite scaling. 2007-05-14 02:34:02 +00:00
Chris Laurel 36d0299d78 Added limited support for per-vertex colors in meshes. 2007-04-23 17:39:38 +00:00
Chris Laurel 35696e1dcd Additive blending fixes:
- Consider blend mode when comparing materials
- Enable additive blending even when opacity = 1
2007-04-23 16:28:07 +00:00
Chris Laurel ff179e468b Added blend type to material definition. Options for blend type are normal and additive. 2007-04-22 04:52:15 +00:00
Chris Laurel 962faa784e Added unlit render context for GLSL render path: elminates need to revert to fixed function paths when rendering emissive meshes. 2007-04-20 17:52:10 +00:00
Chris Laurel f833a58ef2 Fixed bug with emissive models. 2007-04-03 18:00:21 +00:00
Chris Laurel 6454b452d4 Mesh rendering bug fixes and improvements:
- Defined a sensible lighting model to use when normals are omitted from a model, which should prevent crashes in the Mac version
- Added support for point sprites in cmod meshes
2007-04-02 16:55:32 +00:00
Chris Laurel bf271f2129 Fixed crash that occurred when rendering meshes with atmospheres in a non-OGL2 render path. 2007-03-05 10:34:49 +00:00