Commit graph

385 commits

Author SHA1 Message Date
AzaezelX
fe26ffc375 shift capturing from a globalMacro to a sceneRenderstate S32
lets us ditch shader recompilation so that can be done on the fly without hitches, though does cost us a per-shader const for objects and postfx
2024-04-16 13:51:41 -05:00
AzaezelX
563912c181 fix serverGroup not being created 2024-03-24 19:44:44 -05:00
marauder2k7
51624b7ce8 macosx changes
changes required to get masox to run.

Some further changes possible required around resourceHolder in future.

The geometry shader works in macosx with gl version 3.3, though i do think some changes are required internally to account for a lack of OUT_col%
2024-03-15 15:17:25 +00:00
marauder2k7
a7dabae88a Update helperFunctions.tscript 2024-03-14 11:30:52 +00:00
marauder2k7
bd7bbd782c Revert "Merge branch 'development' into ShaderConstBuffer-CleanupRefactor"
This reverts commit ae11d996d9, reversing
changes made to e6c653c441.
2024-03-14 08:32:29 +00:00
marauder2k7
ae11d996d9 Merge branch 'development' into ShaderConstBuffer-CleanupRefactor 2024-03-14 08:28:29 +00:00
marauder2k7
fbed04050a gui shaders for opengl
First opengl geometry shader along with the other shaders for gui rendering opengl side.
2024-03-09 18:34:43 +00:00
marauder2k7
d9c4269d8b bug fix
deleteSelection when an output node had multiple connections only the first one was deleted, needed a new function to return a vector of connections that are now looped and deleted at the end of delete selection.

few other minor additions and fixes.
2024-03-07 17:22:48 +00:00
marauder2k7
dbbd9383e7 better rounded rect 2024-03-07 10:20:06 +00:00
marauder2k7
0d448ad761 smoothing out results from gui shaders
roundedRectangle and circle drawing now smooth out their results
2024-03-07 09:47:18 +00:00
marauder2k7
c9d70de609 extra draw gui
add the extra functions for drawing gui elements
RoundedRectangle:

All draw rect functions now pass through roundedRectangle which uses a shader and can draw borders, and rounds the corners

Draw thick line:
draws a line thicker than 1 pixel, uses a geometry shader to do this

Draw Circle:
Draws a circle with a border parameter.
2024-03-06 17:27:18 +00:00
AzaezelX
24562e6758 aug ArrayObject to have a uniquePair command
like uniqueket and uniquevalue, removes duplicate entries, but only if *both* match
also, use that for the populateAllFonts() cache generator
2024-03-03 22:04:09 -06:00
AzaezelX
3ab716063f doc correction 2024-02-23 12:39:26 -06:00
AzaezelX
4d1395dd57 from mar: fix the opengl cookie uv lookup 2024-02-23 11:23:07 -06:00
AzaezelX
c27b9bf48f allow spotlights specifically to comprress ies based on angle differentials 2024-02-23 01:28:15 -06:00
AzaezelX
bbe9bc8871 missed a 1d convert 2024-02-22 23:47:57 -06:00
AzaezelX
14b6822e49 a) use a 1d texture for this
b) if we're going to optionally assign iesProfiles via shadowMacros.push_back, should specify the entries for the samplers too
2024-02-22 17:53:53 -06:00
AzaezelX
0b7fd2f0b3 ies bugfixes 2024-02-22 16:00:26 -06:00
marauder2k7
39ec0305f9 GLSL To match
Update the glsl side to match hlsl ies profile usage
2024-02-21 08:24:24 +00:00
marauder2k7
4417462499 Add support for both ies and cookie
Both ies and cookies can now exist on a light

We are still not using all the capabilities of an IES profile, such as candela and luminance values we are just using them as a mask for the moment

Issues compiling on mac and linux, will need to update the ies-loader to use torque methods instead of std::
2024-02-21 07:40:57 +00:00
marauder2k7
a12d915180 Loads an IES Photometric profile.
ADDED: Ability to add IES profile as the cookie texture slot in both point lights and spot lights

TODO:
Have the IES Profile also drive the settings for the lights.
Make it work with Cookie textures. IES profiles are to be another slot in the advanced light section.
2024-02-21 06:22:37 +00:00
Brian Roberts
e68643c6ce
Merge pull request #1194 from Areloch/onClientMissionLoadedCallback
Adds a callGamemodeFunction invoke for when the client is done loading the mission so the gamemode can do stuff once the player is done loading, but before fully connecting/spawning in
2024-02-04 00:10:29 -06:00
Brian Roberts
f940360b96
Merge pull request #1199 from Azaezel/alpha41/sfxSafties
sfx safeties
2024-02-04 00:09:56 -06:00
AzaezelX
c4b30b74fd clarify variable types. you want to pass assetIDs, not actual profiles 2024-02-03 22:39:21 -06:00
Areloch
aa3d51c3cc Removes some old entity/component code from the level load process that isn't used anymore 2024-02-03 17:16:41 -06:00
Areloch
b0b0cbfaef Adds a callGamemodeFunction invoke for when the client is done loading the mission so the gamemode can do stuff once the player is done loading, but before fully connecting/spawning in 2024-02-03 17:09:11 -06:00
AzaezelX
cf56265789 extended onCreateGame functionality
now also trips on object instances and datablock namespaces
ensures there's a generic hook for post-load processing for objects created by a scene to reference other objects created during that process
2024-01-21 22:16:15 -06:00
Areloch
e71880b898 - Added a companion global var array for $AudioChannelsName[x] as well as utilizing $AudioChannelCount for keeping better tabs on the active defined audio channels. This allows modules to establish new channels more easily
- Updated the handling of the option slider entries to utilize temp vars and properly complied the audio channel options to the new setup
- Fixed issue where behavior of slider was erratic because of improperly defined tick count
- Added logic to check if audio sliders were changed for the 'check unchanged settings' logic
- Made the keybind remap inputCtrl ignore axis events
- Made the MessageBoxDlg input commands properly check for key makes, to prevent messages boxes from catching key breaks and blowing past follow-up messageboxes accidentally
- Fixed forward/backward iteration of options entries, especially on dpad, and added handling for gamepad stick to do the same
- Added logic so option sliders can also be manipulated by the forward/backward to make it standard for all
- Fixed erroneous marking of "restart required" message as true if any settings change, and not just settings expressly flagged as requiring a restart
2024-01-01 01:42:53 -06:00
Areloch
67ac556ecd - Added ability to explicitly execute a guiControl's console and altConsole command
- Fixed formatting of resolution strings for the internal values, allowing them to be properly parsed and applied by the options menu/canvas
- Fixed display of Display Device on option's menu
- Fixed Issue of it not displaying any keybinds in keyboard/gamepad options if there's only a single actionmap
- Added 'hold to scroll' action to optionsMenu
- Added apply button to options menu
- Added remap button to options menu when on keyboard/gamepad keybinds categories
- Fixed up the remap logic so remapping a key only unbinds the matched device being bound, so binds for different devices are untouched
- Made keybinds options properly refresh when keybinds are changed
- Shifted keyboard "go" keybind for menu nav from Enter to Space for easier use
- Removed stick keybinds from gamepad
2023-12-31 12:46:48 -06:00
Areloch
6e101595d6 Merge branch 'BaseUIUpdateWipwork_20231219' of https://github.com/Areloch/Torque3D into development 2023-12-26 21:29:24 -06:00
Areloch
df00543502 Implemented apply changes logic
Updated autodetect graphics to complete to new apply changes rules
Made it so gamepad can activate key rebinds
2023-12-19 16:37:23 -06:00
Areloch
55697cffdb Streamlined baseUI profiles
Implemented audioOptions file with structure to comply to BaseUI options menu
Implemented majority of keybind remapping logic for options menu
2023-12-18 23:49:13 -06:00
Areloch
ce4c8dabc9 Ongoing wipwork of the BaseUI update. Some bugfixes pending 2023-12-16 23:18:33 -06:00
Areloch
616d974212 Wipwork for updating the BaseUI
Adds ability to select an actionmap for a GuiInputCtrl which will push it onto the stack, so menus can enact an action map
Update of the MainMenuGUI to fit new style and have the logic needed for KBM and gamepad navigation
Very early wipwork of OptionsMenu overhaul for new standard
2023-12-06 19:50:51 -06:00
AzaezelX
8c38448428 probe capture fixes
review of per and post bake protocols showed that the CAPTURING shader macro was not being properly recompiled in. as opengl was not playing nice with a simple batch shader recompilation for all effected shaders, a full lightmanager restart is at time of writing required. once we have a proper globally cached scene structure stored off GPU side, we'll want to change  GFXShader::addGlobalMacro("CAPTURING", String("1")); on over to dirtying that value in the cached buffer via setting a shader global uniform
review of prefilter examples shows a fixed sample count of 1024 across multiple implementations, so we'll use the standard barring further research into where that number is comming from for a scalar approach
review of gl shaders shows a doubleup in compiled state testing, so slimmed that down and added additional debugging reports
2023-12-05 13:32:03 -06:00
AzaezelX
9b7d99fc1d typofix 2023-11-29 13:34:27 -06:00
AzaezelX
ccfe2478b7 overdark causality review
two things stuck out as proximal causes for an overdark result on community review
1) $PostFX::HDRPostFX::keyValue was significantly too low given existing calculations, so upped that to 00.5 in keeping with the general assumption were remain intending to have that be the dead center value of a luminance range
2)  Fr_DisneyDiffuse input assumptions differ from current engine ones, so reverting that to lambert .
2023-11-28 19:34:09 -06:00
AzaezelX
593d0ef9f0 lighting corrections:
1) fix spotlight shadow casting. we weren't properly accounting for reversedepthbuffer there
2) fix mismatched variables in forward lit spotlight param array
3) use disney diffuse in the generalized brdf, and apply it for spotlights after angular attenuation, not before
4) .provide a generailze luxTargMultiplier approach for spot and point lights (as well as future growth areas) so that range, angle ect can impact the brightness variable sent to a given light source shader without perpixel overhead
5) for spotlightParams in particular, use sizeof(point4f) for the alignedarray untill that's properly reviewed/revised
6) narrow attenuation slightly based on a given lights dot product to prevent tool vs outcome leakage, plus provide safeties for when a given spotslight's inner and outter angles match identially
2023-11-18 19:05:12 -06:00
AzaezelX
268603f36c clean up ServerAssetValidator when closing server 2023-09-27 15:45:54 -05:00
Areloch
37c85bb7ee From Nils' UI work
- Updates various images in core and UI to be more standardized to the default theme
- Updates some spacing, sizing and coloration of gui controls and profiles
2023-09-05 00:05:32 -05:00
Samuel Skiff
cde584253d OpenGL fixes for HDR post effect 2023-07-07 00:51:11 -05:00
AtomicWalrus
75625dc679 Reverse depth & 32F buffer format
-Adds reversed depth projection model, dramatically increasing depth buffer effective resolution.
-Adds 32F depth 8U stencil format GFXFormatD32FS8X24 (following DX naming conventions). Note this is a 64-bit format, and likely not suitable for mobile platforms. Revert to GFXFormatD24S8 in renderManager.tscript for mobile & "ancient" platforms.
-Corrects alignment of texture type details array.
2023-04-14 20:13:28 -06:00
AzaezelX
1b1497d439 adds a reloadModuleFiles(%moduleGroup); command
method checks last module.filename execution via getTimeStamp() the last time it was run, and compares fileModifiedTime to see if the next time that file had been altered.
called in moduleExec
2023-04-08 21:27:43 -05:00
AzaezelX
fd02044d20 cut control chars for font population
zip referenceablilty for font files
2023-03-17 23:02:27 -05:00
Brian Roberts
d887c27d95
Merge pull request #994 from Azaezel/alpha41/fontcachegen
revise populateallfonts()
2023-03-15 18:22:44 -05:00
AzaezelX
07b3cba378 fix font cache attempting to start with char 0x0, time delay generation by one second per to mitigate ap choke 2023-03-15 18:22:14 -05:00
AzaezelX
f22464b056 revise populateallfonts
rewritten to be a full itteration of all unique combos of font+size used by any currently loaded guicontrolprofile
2023-03-15 06:24:25 -05:00
AtomicWalrus
4b678a3e3b Prevent double onAdd script call for GameBase objs
Adds a check to skip this the first time onNewDataBlock is called (when the object is created) to prevent double-calling onAdd
2023-03-15 00:05:01 -06:00
AzaezelX
9a5e0829ff misc asset bit cleanups
pt1) camera_shape misconversion leftovers
2023-03-07 15:15:12 -06:00
Areloch
33ac4a0864 Corrects the dirt lens image reference from filepath to assetId to not have overhead having to look up the asset each frame when setting the postFX 2023-02-26 12:58:50 -06:00