cormack12
Gold Member
Source: https://www.unrealengine.com/en-US/...al-fantasy-vii-remake-intergrade-for-next-gen
....some more at link
To see how Square Enix took advantage of Sony’s next-gen console, we interviewed Square Enix Co-Director Naoki Hamaguchi, Lead Rendering Programmer Shuichi Ikeda, and Lead Technical Programmer Tomohito Hano. The trio discuss how they significantly bolstered texture quality, shortened load times, and improved lighting and shadows while maintaining smooth, consistent performance.
On the technical side, what were your major goals coming into the next-gen update?
Co-Director Naoki Hamaguchi: My biggest goal was to get a first-hand feel of the performance of the next-gen hardware leading up to the next installment of FINAL FANTASY VII REMAKE. I was able to learn several things, like how much load is feasible using 3K and 4K rendering resolutions, or what the threshold is for loading high-quality assets while allowing players to play without stress, since the I/O bottleneck is now gone due to the implementation of the high-speed SSD. These were all very meaningful experiences for our developers working on our next title.
Was there a lot of work involved in optimizing the game to load more quickly on PS5's NVME SSD?
Lead Technical Programmer Tomohito Hano: With PS5 having an SSD, I/O speeds were no longer a bottleneck. Instead, time slicing and CPU load became the causes for longer load times.
Because of that, we improved the load flow by doing things like putting in unique serialization so that it would lessen the load during deserialization in areas especially prone to bottlenecks. Through these efforts, we were able to go from approximately 12 second load times down to six.
While we were exploring options for further improvement, we realized the loader was inefficient. So, we integrated Unversioned Property Serialization and IOStore, which were introduced with Unreal Engine 4.25. This title was developed based on UE 4.18, so it required some changes, but because of the implementations, we were able to shorten the time to about two seconds, so I feel that this brought improvement that was well worth the investment.
Textures load much faster, too. Can you talk about the work that went into improving those streaming issues using Unreal Engine?
In the PlayStation 4 version, we had to forgo using a higher-quality format and high-resolution textures due to memory and disc capacity restrictions. However, we still didn’t have enough disc capacity with FINAL FANTASY VII REMAKE INTERGRADE to include a high-quality format and high-resolution textures.
And so, we integrated Oodle Texture [Compression], and by using it in combination with Oodle Kraken, we were able to achieve a smaller file size on the PS5 version, even taking the higher resolution textures into account.
Plus, the increased memory compared to PS4 and the improvement of the Non Streamable Mip Map, which ties into the response of the aforementioned question, also helped to load textures.
We were also able to use more high-resolution light maps, which improved the accuracy of the lighting.
FINAL FANTASY VII REMAKE INTERGRADE features upgraded screen-space reflections (SSR), which are really noticeable on water reflections. Can you talk about the work that went into this enhancement?
Ikeda: The SSR we used in FINAL FANTASY VII REMAKE INTERGRADE traces rays not just from glossy surfaces, but also rough surfaces, which generally tend to be omitted. By doing so, a more accurate occlusion is considered geometry-wise, and so you can see things like the light of a foot lamp bouncing off of a surface, or the hilt of Cloud’s sword being reflected in its guard.
There were times when aliasing from ambient light passing through could be seen on the eyes and the nose, which was a bit unsightly, but that was dramatically reduced. Typically, the mapping vectors obtained via normal mapping point in directions that would not be visible by the line of sight in many instances. When using these vectors in SSR, the direction of the reflection points to the inside of the surface, so it will always return a tracing error. This time, the mapping vectors on the polygon surface were stored in the buffer as well, and we corrected the error pixels when reflections were created to combat this issue.
In typical SSR, the image in the previous frame would be referenced, so whenever something like a camera switch happens, you can see a delay in the reflections being processed. For this title, whenever something like that happens, we would prioritize rendering the incomplete current frame so it would make an alternative reference, in order to address any hopping. Additionally, in a typical implementation, the prior frame that is referenced may already have the fog rendered, which causes that fog to be processed twice when referenced in SSR.
Can you talk about the work that went into FINAL FANTASY VII REMAKE INTERGRADE's improved lighting using Unreal Engine?
Ikeda: Upon commencing production for FINAL FANTASY VII REMAKE INTERGRADE, we reevaluated all of the lights placed in towns and, as a result, decided to increase the number of placements. We also increased the resolution for the environment map, which would serve as a surface for the neon lights to be reflected. We also revisited how color burn for static light was being handled, and at the same time made revisions to the luminance corrections made via light probes.
Fog information placed in every nook and cranny would react to all of the light sources, which I believe contributed to the atmosphere of Wall Market’s hustle and bustle. The bloom was a mix of volume metric fog plus some post processes, but by updating how decimate and kernels were processed, you can see how even the smallest piece of ember can cause a reaction.
Can you talk about the work that went into increasing the game's shadow fidelity?
Ikeda: We had to revisit the processing buffer allocation for shadows as well. Because of the change in memory allocation, the overall fidelity increased, so that should be reflected in the geometry of the details, which were previously lost. Furthermore, we corrected the jittering and bias in the sampling processes, so you should see less deterioration here as well.
We’ve been using SSAO for micro shadowing, but we’ve rewritten parts of it, including the denoising component of it, so you should be able to get a sense of the sharper details.
....some more at link
To see how Square Enix took advantage of Sony’s next-gen console, we interviewed Square Enix Co-Director Naoki Hamaguchi, Lead Rendering Programmer Shuichi Ikeda, and Lead Technical Programmer Tomohito Hano. The trio discuss how they significantly bolstered texture quality, shortened load times, and improved lighting and shadows while maintaining smooth, consistent performance.
On the technical side, what were your major goals coming into the next-gen update?
Co-Director Naoki Hamaguchi: My biggest goal was to get a first-hand feel of the performance of the next-gen hardware leading up to the next installment of FINAL FANTASY VII REMAKE. I was able to learn several things, like how much load is feasible using 3K and 4K rendering resolutions, or what the threshold is for loading high-quality assets while allowing players to play without stress, since the I/O bottleneck is now gone due to the implementation of the high-speed SSD. These were all very meaningful experiences for our developers working on our next title.
Was there a lot of work involved in optimizing the game to load more quickly on PS5's NVME SSD?
Lead Technical Programmer Tomohito Hano: With PS5 having an SSD, I/O speeds were no longer a bottleneck. Instead, time slicing and CPU load became the causes for longer load times.
Because of that, we improved the load flow by doing things like putting in unique serialization so that it would lessen the load during deserialization in areas especially prone to bottlenecks. Through these efforts, we were able to go from approximately 12 second load times down to six.
While we were exploring options for further improvement, we realized the loader was inefficient. So, we integrated Unversioned Property Serialization and IOStore, which were introduced with Unreal Engine 4.25. This title was developed based on UE 4.18, so it required some changes, but because of the implementations, we were able to shorten the time to about two seconds, so I feel that this brought improvement that was well worth the investment.
Textures load much faster, too. Can you talk about the work that went into improving those streaming issues using Unreal Engine?
In the PlayStation 4 version, we had to forgo using a higher-quality format and high-resolution textures due to memory and disc capacity restrictions. However, we still didn’t have enough disc capacity with FINAL FANTASY VII REMAKE INTERGRADE to include a high-quality format and high-resolution textures.
And so, we integrated Oodle Texture [Compression], and by using it in combination with Oodle Kraken, we were able to achieve a smaller file size on the PS5 version, even taking the higher resolution textures into account.
Plus, the increased memory compared to PS4 and the improvement of the Non Streamable Mip Map, which ties into the response of the aforementioned question, also helped to load textures.
We were also able to use more high-resolution light maps, which improved the accuracy of the lighting.
FINAL FANTASY VII REMAKE INTERGRADE features upgraded screen-space reflections (SSR), which are really noticeable on water reflections. Can you talk about the work that went into this enhancement?
Ikeda: The SSR we used in FINAL FANTASY VII REMAKE INTERGRADE traces rays not just from glossy surfaces, but also rough surfaces, which generally tend to be omitted. By doing so, a more accurate occlusion is considered geometry-wise, and so you can see things like the light of a foot lamp bouncing off of a surface, or the hilt of Cloud’s sword being reflected in its guard.
There were times when aliasing from ambient light passing through could be seen on the eyes and the nose, which was a bit unsightly, but that was dramatically reduced. Typically, the mapping vectors obtained via normal mapping point in directions that would not be visible by the line of sight in many instances. When using these vectors in SSR, the direction of the reflection points to the inside of the surface, so it will always return a tracing error. This time, the mapping vectors on the polygon surface were stored in the buffer as well, and we corrected the error pixels when reflections were created to combat this issue.
In typical SSR, the image in the previous frame would be referenced, so whenever something like a camera switch happens, you can see a delay in the reflections being processed. For this title, whenever something like that happens, we would prioritize rendering the incomplete current frame so it would make an alternative reference, in order to address any hopping. Additionally, in a typical implementation, the prior frame that is referenced may already have the fog rendered, which causes that fog to be processed twice when referenced in SSR.
Can you talk about the work that went into FINAL FANTASY VII REMAKE INTERGRADE's improved lighting using Unreal Engine?
Ikeda: Upon commencing production for FINAL FANTASY VII REMAKE INTERGRADE, we reevaluated all of the lights placed in towns and, as a result, decided to increase the number of placements. We also increased the resolution for the environment map, which would serve as a surface for the neon lights to be reflected. We also revisited how color burn for static light was being handled, and at the same time made revisions to the luminance corrections made via light probes.
Fog information placed in every nook and cranny would react to all of the light sources, which I believe contributed to the atmosphere of Wall Market’s hustle and bustle. The bloom was a mix of volume metric fog plus some post processes, but by updating how decimate and kernels were processed, you can see how even the smallest piece of ember can cause a reaction.
Can you talk about the work that went into increasing the game's shadow fidelity?
Ikeda: We had to revisit the processing buffer allocation for shadows as well. Because of the change in memory allocation, the overall fidelity increased, so that should be reflected in the geometry of the details, which were previously lost. Furthermore, we corrected the jittering and bias in the sampling processes, so you should see less deterioration here as well.
We’ve been using SSAO for micro shadowing, but we’ve rewritten parts of it, including the denoising component of it, so you should be able to get a sense of the sharper details.