Commit graph

187 commits

Author SHA1 Message Date
JeffR 81aa43a4bd Fixed formatting to match the standard for TerrainMaterialAsset inspector fields
Added utility functions to TerrainMaterialAsset for getting the material and fx material definitions
Fixed logical flaw with the initialization code that could cause the materialDefinition to be nulled in terrainmaterialassets
Fixed layer handling in GroundCover to properly work with TerrainMaterialAssets
Added logic to properly exit out of the onAdd in the event no internal name is assigned or if there is a collision. This prevents duplicates from appearing in the terr mat editor when creating a new material
Fixed issue where going from a creator item in the AB to selecting a particular asset type would break the filtering because select mode removed collections and creator items, changing all the item ids and breaking references.
Added sanity check to prevent attempting to acquire non-assets in the AB, such as creator entries, which would cause console spam
Added optional field to provide an override new asset name to the New Asset window
Added logic so in the event no FX Material is found when importing a terrain material, it will create a stub entry so it always has one defined
Added logic to handle situations where a terrain has a reference to an assetId, but the asset does not exist for whatever reason. Will prompt to create the missing asset, then continue on with the regular saving/editing process as normal
Fixed issue where the terrain material editor would try and reference the preview images being used in the display on the editor instead of the proper assetId itself
2022-03-29 01:40:07 -05:00
JeffR cf8659735b Adjusts handling so if a file being processed for importing is not actually imported as a new, successful asset it does not return an id, allowing tooling to only worry about actual new assets.
Adds utility functions to TerrainBlock to be able to replace names of materials in the terrain file, mostly used for importing legacy files
Adjusts terrainblock save asset logic to be able to save on a non-networked terrainblock such as when loaded temporarily on the server, for tooling purposes.
Changes handling of not-found terrain materials when loading a terrain block so it will create a dummy terrain material with the same name as the not-found, but set the texture as the Warning image, instead of thrashing the original material names data
Adds logic for testing newly imported terrain files' materials and if needbe, replacing them with the new terrain material asset ids.
Adds logic in the project importer for if a would-be level asset's name already exists, we attempt to slap a "Level" suffix onto it to sidestep collisions.
Changed LegacyImport config to try always adding shape suffix to help minimize probable naming collisions.
Fixed handling of mission file's MissionGroup defines by specially checking for MissionGroup objects and processing the line into a Scene() declaration instead.
2022-03-20 16:17:06 -05:00
Robert MacGregor deb994cb13 * BugFix: Correct a windows-only pathing issue in terrMaterial. 2021-12-14 19:44:44 -05:00
JeffR 434c6c26fe A clean implementation of Lukas' Fix side projection #684 PR with Az's addendum fix rolled in 2021-12-13 15:56:14 -06:00
AzaezelX 1b282e0baf use internalname for terrain layers
stops bugs like spaces in filenames and the like from occuring due to pointing right at the diffuse flat file name, as well as corruption from using a different diffuse in the material later

(cherry picked from commit c1227dbdd0dd61c25970eeaac128c6cbe5d25947)
2021-11-29 13:54:13 -06:00
AzaezelX f5600826d7 Merge branch 'Preview4_0' into SoundAssetImplements
# Conflicts:
#	Engine/source/T3D/assets/assetImporter.cpp
#	Engine/source/forest/forestItem.cpp
2021-10-11 20:11:27 -05:00
Robert MacGregor aba091a97a Merge remote-tracking branch 'main/Preview4_0' into bugfix-msvc-compiler-warnings 2021-10-11 19:36:52 -04:00
Robert MacGregor 22d6b4a1f1 * BugFix: Correct an accidentally removed line from clearing compiler warnings. 2021-10-07 00:32:42 -04:00
Robert MacGregor 5d26dba7da * BugFix: Clear some MSVC compiler warnings. 2021-10-07 00:27:39 -04:00
Jeff Hutchinson 24bf807713 various shadergen fixes. 2021-10-06 21:53:26 -04:00
AzaezelX 98a079a797 code duplication prune. should aid in stability 2021-10-03 02:56:26 -05:00
AzaezelX c523951e65 Merge branch 'Preview4_0' into alpha40/SGCleanups2 2021-09-22 18:47:31 -05:00
AzaezelX 5682bafb29 kills off that second buffer in terrain rendering when in forward mode 2021-09-22 18:28:19 -05:00
Areloch adec6e7c74 Adds load status to MaterialAsset for if the Script file itself has been loaded, but the material itself hasn't yet been processed.
Fixed String -> StringTableEntry conversion in prefab file to correct corruption when setting the filename
Cleaned up message spam from the MaterialSlot fields on TSStatics
Added getter/setters for terrain file and assets
Removed unneeded exec of tools profiles for MainMenuGUI
Add logic to remove creators section of AB if in select mode
Fixed misc. messageBox invokes that were erroneously converted to 'toolsMessageBox'
Fix classname for NotesObject in AB Creator Entry
Fix issue where ConvexShapeEditor toolbar would hide after being seen once
Changed keybind for quick AB access from 'space' to 'shift space' to avoid input issues when typing in fields in some cases
Fixed default image assignments for River objects on foam/ripple/depth
Added handling for Material, Sound and Shape asset fields in Object Builder, and updated various objectBuilder class entries to utilize them now.
Updated various fields' defaults for ObjectBuilder to utilize correct assetId's
Fixed editor SceneTree tooltips for TSShape and GroundCovert to correctly reference assets as needed
Added logic to properly check terrain asset validity when prompting to save changes, which would break saving actions before
Added menubar items in the Object category to take control and release control of control objects quickly for testing
2021-09-19 01:01:47 -05:00
AzaezelX 438e6cbb3c fix for diffuse map mangling in several cases, filter imposters out of real time lighting (for now?) fix the blankskybox via a resave, and filter "badfilereference" and "failed" assets out of variable replacement for the project converter 2021-07-25 17:18:55 -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
Lukas Aldershaab 481e2a7230 Improve terrain rendering, handle bug with no detail 2021-01-04 20:06:17 +01:00
Brian Roberts 27641b16ca
Merge pull request #424 from lukaspj/feature/new-terrain-blending
Height based terrain texture blending
2021-01-04 05:36:50 -06:00
Lukas Aldershaab 6f57aa51d2 Add 0.5f term back to contrast calculation 2021-01-03 11:43:13 +01:00
Lukas Aldershaab 9cac064be8 Avoid negative heights in texture blending 2021-01-03 11:35:08 +01:00
Lukas Aldershaab 10ed852dd2 Remove baseline component from contrast 2021-01-03 01:49:07 +01:00
Lukas Aldershaab 60a10f4334 Add global blendDepth slider and update default blendDepth for mats 2021-01-03 01:26:19 +01:00
Lukas Aldershaab db496fa0c4 Make terrain texture settings global, add dialog to painter 2021-01-03 00:50:42 +01:00
Lukas Aldershaab d3996aec84 Add texture size fields to terrain textures and improve editor performance 2021-01-02 18:33:18 +01:00
Lukas Aldershaab 3c165b7d45 Update blendContrast, add glsl support 2021-01-02 03:30:08 +01:00
Lukas Aldershaab 1ffec9ab56 Add blend contrast slider 2021-01-02 03:20:18 +01:00
Lukas Aldershaab 3c8d07a03e Cleanup and fixes 2021-01-02 02:08:22 +01:00
Lukas Aldershaab 4f472bf402 New terrain blending 2021-01-01 21:07:12 +01:00
Lukas Aldershaab 87dd7ffc4a Implement Singlepass Terrain Render 2021-01-01 21:06:01 +01:00
Brian Roberts 578846ab6f
Merge pull request #428 from Areloch/ConsolidatedTerrainCreation
Consolidates and standardizes terrain creation between the editor, asset browser and creator panel
2020-12-29 01:29:34 -06:00
Areloch f7ce1efd62 Consolidates and standardizes terrain creation between the editor, asset browser and creator panel
Also shifts terrain data importing into the new terrain asset window instead of separate in the File menu
Also removes redundant loadMaterials call that caused duplicates in the Terrain Painter material list
2020-12-28 23:43:56 -06:00
Lukas Aldershaab 49a8c0ad36 Fix ORM maps in terrain textures
Fix default target for Composite Terrain GLSL
2020-12-26 20:02:37 +01:00
Lukas Aldershaab 0594e13e07 OpenGL: Access viewtangent "DX" style for gbNormal in terrain textures 2020-12-26 12:49:34 +01:00
AzaezelX 4250e1d1b4 simplification of the Class::_set<slotname>Asset methods, (as well as early outting before dAtoi(index) hurt itself if index was invalid)
also since I was in there, fixed isrgb accidently being flipped on by default
2020-10-12 04:43:47 -05:00
Areloch f0068c2435 Updates macromagic to properly set up for init'ing when image assets are set in material and terrain materials 2020-10-10 22:48:13 -05:00
Brian Roberts d50f1f0b81
Merge pull request #342 from lukaspj/fix/replace-dstrcmp
Replace uses of dStrCmp with new String::compare
2020-10-03 17:01:12 -05:00
AzaezelX 411cd009f4 fix terrain compilation 2020-10-03 13:32:16 -05:00
Brian Roberts 681dbe108c
Merge pull request #323 from Azaezel/alpha40_smoothToRough_clean
shift pbrconfig to ORM in keeping with the prepoderance of industry standards
2020-10-03 11:49:10 -05:00
Lukas Aldershaab c999baf7ed Moves from using dStrCmp to the new String::compare static functions. Keeps things cleaner, consistent, and works with intellisense. 2020-10-03 14:37:55 +02:00
Lukas Aldershaab f87dde254d extra option for terrain block to disable the update of the basetexture 2020-10-03 11:31:02 +02:00
AzaezelX 0c7811bd1a shift pbrconfig to ORM 2020-09-30 13:51:12 -05:00
AzaezelX 22b0785c73 augment imageasset with initMapSlot and bindMap class insert macros (and array variants) to make the conversion process for folks shifting from 3.x to 4.x cleaner, as well as autocreation of getter/setter methods andadditoinal acessor macros for consistency 2020-09-30 13:50:23 -05:00
Areloch 8956559bfd Various misc. tweaks and fixes based on static code analysis to minimize/fix memleaks, crashes, or other performance impacting code. 2020-09-19 18:25:10 -05:00
Areloch c5bccd8ff4 Adjusts getUtilizedAssets writeout so it more consistently prints out the dependent assets
Adds handling for prefabs with getUtilizedAssets
2020-09-08 01:04:41 -05:00
Areloch 40dd926873 Adds function for sceneObjects to report utilized assets
Add reporting of used assets to tsStatics and TerrData
When saving a Scene, it will write static object asset dependencies to it's levelAsset
Shifted level loader logic to pass up the levelAsset rather than full level path
Made it so when level is loading, the levelAsset loads its dependencies. When the level is ended, as part of cleanup, they are unloaded
Shifts defaultEditorLevel to be an actual asset and made the ToolsModule load assets
Fixes the Save As action to correctly save out to the new level asset
Fixed the autoLoadAssets logic to be cleaner and not manually check types
Removed extra, unused DefaultEditorFile file
2020-08-19 18:30:42 -05:00
Areloch 69bfbb0978 Adds functions to get the full path for level and shape asset files
Updated choose level UI to use getLevelPath function so it works again
Added a check for mis.dso for choose level UI as well in case it was compiled
Updated open asset in shape editor logic to use getShapeFile so it works again
Fixed on-exit crash after drag-n-drop importing of assets into the AB by properly using the import config object as a pointered object
Added sanity check when inspecting a TSStatic, if there isn't a materials inspector group for whatever reason to prevent a crash
Added filter logic so if in select mode for a specific asset type, it won't show datablocks, prefabs or other loosefiles
Removed unneeded setting of AB's current address path when creating a new terrain material asset
Added logic for forcing field validation in the create a new asset window. This fixes a problem where if you'd typed in a field but didn't hit enter and then immediately hit the done button, the typed string wasn't used.
2020-08-12 13:11:13 -05:00
Brian Roberts 67dbe4dfe2
Merge pull request #229 from Areloch/TerrainAssetFixup
Reworks the terrain loader code to work with the assets.
2020-07-10 17:30:27 -05:00
chaigler c4e00be91a Fix for crash in _onZoningChanged methods when called by hidden objects.
Hidden objects are removed from the scene manager so calls to getSceneManager()->getZoneManager() crash and burn.
2020-07-02 15:50:29 -04:00
Areloch 4ce558f042 Reworks the terrain loader code to work with the assets.
Fixes the terrain asset creation, makes the loading logic go through the asset auto-import behavior when a filename or assetid is bound that is not found.
Corrects terrain material binding to properly save and load
Makes the terrain asset inspector fields work as expected.
2020-06-25 23:33:01 -05:00
AzaezelX 4a88d7a4e4 adress #221 crash surpress macromap
while shifitng loop in _initSamplerNames to use sgMaxTerrainMaterialsPerPass. if folks absolutely require thier projects to contain terrain macromaps, they can unrem

FEATUREMGR->registerFeature( MFT_TerrainMacroMap, new NamedFeatureGLSL("TerrainMacroMap Deprecated")); // new TerrainMacroMapFeatGLSL);
   //samplerNames.push_back("$macrolayerTex");
and
      //samplerNames.push_back(avar("$macroMap%d", i));
as well as turn sgMaxTerrainMaterialsPerPass down to 2 entries on a given terrain subchunk before it requires another rerender of the terrain blended in with prior passes.
2020-06-19 21:12:20 -05:00