Commit graph

30 commits

Author SHA1 Message Date
Areloch cd82186231 Fixes setter issue for image/shape/material custom inspector fields where it was not correctly passing through the changed value from the Asset Browser select
Swapped the water's disableTrueReflections variable to be enableTrueReflections for simplicity and consistency(also fixed a persistent typo)
Swapped disableVerticalSync to be enableVerticalSync for simplicity and consistency
Swapped disableParallaxMapping to be enableParallaxMapping for simplicity and consistency
Fix click detection on slider mode entries for guiGameSettingsCtrl so the click position correctly matches the percentage
Fixed problem where postFX initialization would always exec default.postfxpreset.tscript, even if a level's got it's own preset, which can cause problems
Fixed range field type behavior so that editing the values applies in real time, and also consistently applies between slider and text field
2022-08-30 01:29:39 -05:00
Areloch 5525f8ecdd Converts all game, gui editor, and system classes to utilize assets
Processed core, tools and default modules to utilize assets
Converted all console types that were string based, such as TypeImageFilename to utilize const char*/the string table, which avoids a lot of type swapping shenanigans and avoids string corruption
Removed unneeded MainEditor mockup module
Removed some unused/duplicate image assets from the tools
2021-07-19 01:07:08 -05:00
rextimmy 5a933c00d3 Removed old fixed function code from GFX. 2021-01-05 12:57:17 +10:00
Lukas Aldershaab 87dd7ffc4a Implement Singlepass Terrain Render 2021-01-01 21:06:01 +01:00
Areloch ab9fc302fc Added D3D error code interpreter
Added sanity check for findMatch
Finished most of asset importer logic to utilize settings system
Cleaned up code for finding associated files
Added General importer settings category and integrated logic for those settings fields
Updated logic in variableGroup to support callbacks in custom fields
Updated logic in variableInspector to better handle callbacks, as well as being able to manually update when manipulating fields
Updated scripts to utilize project settings values for playGUI and mainMenuGUI names
Improved module-oriented loading of materials
Added util function for populating custom fonts
2019-08-12 01:04:17 -05:00
Tim Barnes ab10cc0c87 timmy merge work 2018-11-28 17:51:52 +10:00
Areloch 1f7cf55204 Add cubemap arrays, as well as control for generation of MIPs on texture targets. 2018-09-16 18:19:04 -05:00
Areloch b4a1d18f42 Core implementation of Physical Based Rendering. 2018-09-15 20:19:57 -05:00
Azaezel 181f95510a method to make sure we're not getting pixel shader inputs mixed with outputs. 2017-07-09 15:15:30 -05:00
Areloch 25686ed4be Implementation of sRGB image support. Overhauls the linearization setup to utilize the sRGB image types, as well as refactors the use of ColorF and ColorI to be properly internally consistent. ColorIs are used only for front-facing/editing/UI settings, and ColorFs, now renamed to LinearColorF to reduce confusion of purpose, are used for color info in the engine itself. This avoids confusing and expensive conversions back and forth between types and avoids botches with linearity. Majority work done by @rextimmy 2017-06-23 11:36:20 -05:00
James Urquhart 212ac36cc1 Tidy up indentation in openvr changes 2016-09-11 22:51:00 +01:00
James Urquhart f91aa639d6 Remove projection offset, add the hmd head matrix. Also tidy up a few things. 2016-09-11 22:42:42 +01:00
James Urquhart ba91478fad Baseline working openvr code 2016-09-11 22:42:42 +01:00
Areloch 908be4818f Merge pull request #1519 from Azaezel/deferredShading
Deferred shading
2016-02-27 15:08:20 -06:00
Dušan Jocić 28d303c5ea Added immutable vertex and index buffers. 2016-02-20 21:28:18 +01:00
Azaezel 8c5810adad The final step (barring any overlooked missing bits, requested refactors, and of course, rolling in dependencies already submitted as PRs) consists of:
renderPrePassMgr.cpp related:
A) shifting .addFeature( MFT_XYZ); calls from ProcessedShaderMaterial::_determineFeatures to ProcessedPrePassMaterial::_determineFeatures
B) mimicking the "// set the XXX if different" entries from RenderMeshMgr::render in RenderPrePassMgr::render
C) fleshing out ProcessedPrePassMaterial::getNumStages() so that it shares a 1:1 correlation with ProcessedShaderMaterial::getNumStages()
D) causing inline void Swizzle<T, mapLength>::ToBuffer( void *destination, const void *source, const dsize_t size )  to silently fail rather than fatally assert if a source or destination buffer is not yet ready to be filled. (support for #customTarget scripted render targets)

Reflections:
A) removing reflectRenderState.disableAdvancedLightingBins(true); entries. this would otherwise early out from prepass and provide no color data whatsoever.
B) removing the fd.features.addFeature( MFT_ForwardShading ); entry forcing all materials to be forward lit when reflected.
C) 2 things best described bluntly as working hacks:
C1) when reflected, a scattersky is rotated PI along it's z then x axis in order to draw properly.
C2) along similar lines, in terraincellmaterial, we shut off culling if it's a prepass material.

Skies: scattersky is given a pair of rotations for reflection purposes, all sky objects are given a z value for depth testing.
2016-02-16 02:50:49 -06:00
Areloch 11398bb04e Issue found with PVS-Studio:
A lot of instances where some function args are not actually modified in any way, meaning that it is better for performance to convert them into const references. This prevents an additional copy, which can help performance.
2015-07-16 22:02:18 -05:00
James Urquhart efc47ed757 Basic fix for stereo rendering without a display device 2015-06-21 20:59:41 +01:00
James Urquhart 3a457749ec Oculus VR DK2 Support
- Updated to work with 0.5.x SDK
- Uses Oculus Rendering rather than PostFX
- Stereo rendering refactored so more rendering info is grabbed from the DisplayDevice
- Implements an Offscreen Canvas for in-game gui with oculus
- Message dialogs and metrics display can now go to the OffScreen Canvas (if oculus demo is setup correctly)
2015-05-06 23:09:51 +01:00
LuisAntonRebollo 60f4d4f282 Merge pull request #926 from BeamNG/primbuild_for_non_ffp
Fix PrimBuild with non Fixed Function Pipeline.
2014-11-30 02:21:36 +01:00
LuisAntonRebollo 03ffa1ddd3 Merge pull request #925 from BeamNG/shaderdata_samplernames
Add sampler names to ShaderData
2014-11-30 02:21:30 +01:00
LuisAntonRebollo 1c95ce21d6 Merge pull request #608 from BeamNG/use_gfxdevice_setupgenericshaders
Use GFXDevice::setupGenericShaders for support non Fixed Fuction Pipelines.
2014-11-30 02:20:00 +01:00
LuisAntonRebollo fa1b2d87b1 Fix PrimBuild with non Fixed Function Pipeline. 2014-11-08 17:55:37 +01:00
LuisAntonRebollo 79e158d528 Add sampler names to ShaderData for use on old versions of OpenGL and Opengl ES2 that not support explicit sampler location on shader files. 2014-11-08 17:50:37 +01:00
Azaezel 4f3be25699 prevents an infinite while loop by putting a cap of 4MS on occlusion queries. 2014-07-18 00:40:11 -05:00
LuisAntonRebollo 33742599b3 Use GFXDevice::setupGenericShaders for support non Fixed Fuction Pipelines.
OpenGL and DirectX11 not support FFP, and GFDevice::disableShaders has not the necessary information to decide the shader to be used.

GFDevice::SetupGenericShaders is used instead of GFDevice::disableShaders.

GFDevice::disableShaders will be deprecated on T3D 4.0
2014-04-13 17:57:40 +02:00
DavidWyand-GG 39ab93636c Update ReflectionManager on Scene Field Change
During side-by-side rendering the refraction texture needs to be updated
for both the left and right fields.  These changes add a new GFXDevice
event type to track when a field is about to be rendered.  The
ReflectionManager listens to this new event and ensures that the
refraction texture will be updated if it is referenced by a material.
2013-10-31 16:54:22 -04:00
DavidWyand-GG 15673810c6 Expand PostFX Viewport Options
- Added an option for a postFX to get its viewport from a named texture
in slot 0, if there is one.  This allows the postFX to operate when the
named input texture's viewport is different than the current viewport.
- Modified the SSAO postFX to use the new
PFXTargetViewport_NamedInTexture0 option to more closely link SSAO with
the prepass buffer.
- Modifed the GFX method setActiveRenderTarget() with a new parameter
that indicates if the current viewport should be modified with the new
rendering target.  This defaults to true to maintain its previous
behaviour.  The postFX rendering pipeline sets this to false as it now
handles its own viewport setup, and removes an unnecessary
GFX->setViewport() call.
2013-10-24 13:40:44 -04:00
DavidWyand-GG b32e7688c2 Side by side rendering
- Side by side rendering implemented throughout the graphics pipeline.
- New GuiTSCtrl renderStyle property is set to "stereo side by side" to
activate.
- You set an IDisplayDevice on the GameConnection to define any vertical
FOV, projection offset, and stereo eye offset properties required for
the stereo rendering (no display device included with this commit).
- Full and Empty templates updated with correct scripts and shaders.
2013-04-09 15:19:18 -04:00
DavidWyand-GG 7dbfe6994d Engine directory for ticket #1 2012-09-19 11:15:01 -04:00