HeroEngine Quartz

From HEWIKI
(Difference between revisions)
Jump to: navigation, search
(Enhancements & Corrections)
(HeroBlade Editor and Player Client)
Line 212: Line 212:
 
*new: login UI now allows list of worlds to be sorted by clicking on the column headers
 
*new: login UI now allows list of worlds to be sorted by clicking on the column headers
 
*new: so that they are better seen and acted on by the user, validation-related informational, warning, and error messages are being converted over to pop-up messages, in addition to just a console or error window message
 
*new: so that they are better seen and acted on by the user, validation-related informational, warning, and error messages are being converted over to pop-up messages, in addition to just a console or error window message
 +
<br>
 +
 +
=== Quartz.E New Features  ===
 +
*new: material instance overrides: no illumination, no fog, ambient only, full glow, glow color, modulation, glow intensity multiplier
 +
*new: dom editor filter terms are propagated on tab change if the old tab has a filter term, and the new tab does not
 +
*new: dom editor uses a splitter between the datatype definition list and the display / editing in order to provide more flexibility in space usage
 +
*new: per material shader glow intensity multiplier, and glow color modulator
 +
*new: material instance ui has options to display texture thumbnails as rgba, rgb-only (no alpha), or alpha channel only
 +
*new: although not exposed through the UI yet, now that glow mask and full glow are exposed through shader effect flags, any shader can use them in order to support either effect
 
<br>
 
<br>
  
Line 237: Line 246:
 
*change: there’s no reason not to allow heightmap regridding / merging down to 2 (instead of 8)
 
*change: there’s no reason not to allow heightmap regridding / merging down to 2 (instead of 8)
 
*change: since we recommend below max 64 heightmap regrid, default is now 32 (instead of 64)
 
*change: since we recommend below max 64 heightmap regrid, default is now 32 (instead of 64)
 +
<br>
 +
 +
=== Quartz.E Enhancements  ===
 +
*change: minor reorganization of the dom editor to place “read only”, refresh, and “confirm changes” together in a more logical grouping instead of being scattered around the ui
 +
*change: removed global texture filter setting. all heightmap and mesh rendering will default to anisotropic
 +
*change: texture filtering is now per material
 +
*change: default texture filter (texfilter) to anisotropic (value: 3)
 +
*change: dom editor panels are now dockable
 +
*change/ fix: remove all the duplicate legacy dom architecture, which will improve performance, simplify the code, and address update issues
 +
*change: dom editor read-only mode switch applies to both dom’s instead of just one
 +
*change: dom editor class field allows user to enter field name and validate against list, instead of just picking from list
 
<br>
 
<br>
  
Line 447: Line 467:
 
*fix: re-organized terrain panel brush/ import page to be more sensible
 
*fix: re-organized terrain panel brush/ import page to be more sensible
 
*fix: material comparison would incorrectly return false when trying to parse non-heromaterial fields. this could cause an erroneous comparison
 
*fix: material comparison would incorrectly return false when trying to parse non-heromaterial fields. this could cause an erroneous comparison
 +
<br>
 +
 +
=== Quartz.E Corrections  ===
 +
*fix: add bulletproofing to fix crash attempting to find missing or incorrectly named track mask in skeleton (8578, 8579)
 +
*fix: panels could be updated even if they were not the current, visible panel. this could cause a performance hit
 +
*fix: several crashes due to empty dynamic texture bank material or bank
 +
*fix: lights in the default/ everywhere room now effect all rooms, instead of just the default/ everywhere room
 +
*fix: the shader associated with a material is re-selected after material override changes in order to pick-up any effecting changes
 +
*fix: incorrect logic handling hair shaders would prevent general shader selection logic from working correctly
 +
*fix: material override alpha type handling called the wrong function, which left the material in an indeterminate state
 +
*fix: lights didn’t correctly illuminate meshes due to incorrectly modulating in alpha value as scalar.
 +
*fix: gui control image texturefilter was not setting the correct mip filter when enabled
 +
*fix: crash handling named package groups in dom editor. cleaned up npg definition so it derives from standard dom datatype definition
 +
*fix: class archetype should never be editable after initial creation
 +
*fix: copying a dom class was incorrectly using the source dom for id values
 +
*fix: heroscript editor - opening a file group and thereby closing open scripts could cause an exception and crash
 +
*fix: it was possible for texture filtering to be incorrect
 +
*fix: rewrote material instance string handling to make it more robust
 +
*fix: material instance editor alpha list validation issue
 +
*fix: multiple small bugs with material instance overrides
 +
*fix: lights didn’t correctly illuminate meshes due to incorrectly modulating in alpha value as scalar.
 +
*fix: replaced property panel, undo panel splitter controls with split containers to fix UI issues
 +
*fix: bone rotation regression due to abstracting third party animation system
 +
*fix: make the gui mouse alpha test texture format error more informative
 +
*fix: texels from lit meshes with final alpha values <= 8 are discarded. this prevents some strange lighting issues due to poor / interpolated alpha and/ or other engine options which can push alpha slightly above zero when it should be invisible
 +
*fix: material instance alpha type listbox selection was easily confused
 +
*fix: lod 2.0 broke asset library icon creation due to inadvertently overlapping delimiter set.  asset library messages now uses a different delimiter
 +
*fix: dom editor filtering should be faster, removing progress bar
 +
*fix: tab order in dom and dream manager ui's
 +
*fix: sorting a dom datatype grid by clicking on the column headers could cause the listed data to reset
 +
*fix: class archetype defaults to data
 +
*fix: when using a glow mask, the diffuse texture (mask in w channel) is loaded to a separate point sampler. we assume the mask is linear color, and not default gamma corrected color
 +
*fix: glow mask materials fade out at the same rate as other non-alpha materials
 +
*fix: area instance group didn’t correctly initialize multiple data members, potentially leading to incorrect behavior and/ or a crash
 +
*fix: area spec didn’t correctly initialize multiple data members, potentially leading to incorrect behavior and/ or a crash
 +
*fix: effect spec didn’t correctly set last time lighting was updated, so it was possible for lighting to be incorrect for the effect
 +
*fix: gauntlet lightweight node class vars were not correctly initialized, which could cause incorrect behavior or a crash when the node is torn down
 +
*fix: camera had uninitialized variable which could initially cause incorrect panning
 +
*fix: rooms may not have been updated due to uninitialized variable
 +
*fix: mouse over detection for a waypoint node could be incorrect until it was rendered the first time
 +
*fix: heightmap slope limiter rendering could be initially incorrect due to uninitialized variable
 +
*fix: some logging functions didn’t cleanup correctly, which could lead to weird behavior or crashes
 +
*fix: physics dynamics interpolation was passing similar but not identical, underived structure to lerp function. for safety there’s now a separate function to lerp both data structures
 +
*fix: dynamic model skin texture could be incorrect due to uninitialized index value
 +
*fix: dynamic texture layer could be incorrect due to uninitialized index value
 +
*fix: dynamic parts could crash due to invalid iterator
 +
*fix: facegen could cause a crash due to invalid value cast due to signed cast to unsigned
 +
*fix: environment scheme group could get into a weird state due to invalid data
 +
*fix: forcing a key binding would signal it failed even though it succeeded because the success value wasn’t actually returned
 +
*fix: some resource requests could fail because the signed guid (indicating local or remote) was converted to an unsigned value
 +
*fix: server service nodes didn’t correctly initialize their crash indicator flag, which could result in believing it had crashed when it hadn’t
 +
*fix: misc uninitialized variables are now correctly initialized
 +
*fix: misc C++ conformance and performance improvements
 +
*fix: material instance ui specular channel in normal map didn’t always work correctly due to failure to reset effect on change
 +
*fix: material instance ui options are enabled or disabled based on texture(s) being correctly set
 +
*fix: due to multi-pass lighting, some effects such as glow were run for each light instead of once during the ambient environment light pass
 +
*fix: moderately reduced the number of shader effect permutations by moving glow from conditional compiles to flags. this is a potentially big performance improvement due to the smaller number of shaders
 +
*fix: enabled heightmap “vertex color only” on a heightmap with a texture would cause a crash
 +
*fix: multiple systems now set and restore their rendering state to prevent breaking other systems
 +
*fix: render state is explicitly restored after rendering hair
 +
*fix: unneeded legacy stencil setup resulted in bad rendering state
 +
*fix: regular translucent rendering path interfered with not quite so regular dynamic detail node translucent rendering path
 
<br>
 
<br>
  

Revision as of 01:17, 27 May 2015


Contents

Release: HeroEngine 2.5

Codename: Quartz

Internal Branch Versions


Release Dates: March 2014 - Present

Quartz is a major inter-release update to HeroEngine Sapphire. This release includes a number of major feature, functionality, and performance changes and improvements.

This page contains information and links on new features, changes, and fixes in the current HeroEngine 2.5 Quartz.d release. Information on prior releases can be found at HeroEngine Quartz (Older Revisions).


Obtaining the Release


Supported Operating Systems

Windows Vista is now the minimum supported client operating system. 64-bit (x64) versions of Windows 8.1 or Windows 10 are recommended.

In a future, major release, HeroEngine clients will require a 64-bit (x64) client operating system. This will increase client performance, and allow the client to access and utilize more memory than the current 32 bit (x86) executable client.

The HeroEngine Art Pipeline 2015.1 requires a 64-bit (x64) operating system.


Major Feature Summary

The following is a list of major features expected to be included in this release and is not a guarantee of the availability of the feature in the final release.


DirectMusic has been removed. This should not be an issue, as only the legacy Hero's Journey Reference worlds were using this legacy API. A discussion of how Hero's Journey was updated from DirectMusic to FMOD Studio can be found on the FMOD Studio page.

If you are starting a new project, or have not started audio work on an existing project, we recommend using the new FMOD Studio, instead of the older FMOD Ex which has been discontinued by FMOD developer Firelight.

FMOD Studio not only supports project-based files, but also supports a full-range of options for WAV, MP3, and XMA audio files as well.


Art Pipeline


Please note that the HeroEngine Art Pipeline 2015.1 requires a 64-bit (x64) operating system.


Middleware


Build System


Deployment/Patching/Installation Infrastructure


Localization

All client and server GUI's are now localizable.


Updated Korean language strings strings are included in the release.


Breaking GUI Editor / GUI XML Changes

Some existing GUI XML files may have been missing texture coordinates, or may have had incorrect texture coordinates for some textures. This is seen as incorrect rendering of textured GUI elements in the new release. Opening the affected GUI in the GUI Editor, fixing the texture coordinates, and re-saving will fix the problem.


Some existing GUI controls may have been rendered without the correct textureFilter setting taken into account. A GUI control with a crisp and sharp texture should have the textureFilter set to FALSE. Setting textureFilter to TRUE will cause the GUI control with a texture to linearly filter the texture which can be used to remove jaggy lines from images used in the GUI.



HeroScript Language (HSL), DOM, Database, and Foundation Framework

New Functions


GetGraphicsOptionValue / SetGraphicsOptionValue Changes


Audio / Sound External Function Changes

All of the HeroScript external functions for playing audio clips have been updated to use non-project files (e.g.: WAV, MP3, XMA) through FMOD Studio .

More information on these functions can be found on the Sound functions page.


For completeness, FMOD Ex versions of these functions have also been created. However, please keep in mind that their functionality is very limited compared to what's available through FMOD Studio.


Enhancements & Corrections

Returns: X = Pitch, Y = Heading, Z = 0, in degrees. Z is hardcoded to 0 as this function only builds a heading vector, and doesn’t have an up vector to use to calculate the roll. Previous documentation indicated that this function returned a valid Z/roll value, which is not correct


Quartz.E Enhancements & Corrections


HeroBlade Editor and Player Client

New Features


Quartz.E New Features


Enhancements


Quartz.E Enhancements


Corrections


Quartz.E Corrections


Player Client

This section includes Player Client specific changes.  General client changes are listed above under HeroBlade

New Features


Enhancements


Corrections


Repository Browser

Please note there is an implicit 2 GB size limit on uploaded file size, and 4 GB size limit on downloaded file size. In practice, and due to memory addressing limitations, the 32-bit (x86) Repository Browser is limited to maximum upload sizes of approximately 512 MB - 1 GB, and slightly larger maximum download sizes. In a future release, the 64-bit (x64) Repository Browser is able to upload and download the maximum supported file sizes.

New Features


Enhancements


For performance reasons, you cannot drag & drop files from the remote repository window to Windows Explorer. If necessary, drag & drop the files from the remote repository window directly into the local directory in the local directory window.

Corrections


Server Processes


New Features


Enhancements


Corrections


Master Control Console


New Features


Enhancements


Corrections


Server Utilities


New Features

Enhancements


Corrections


Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox