OfficeHours:Geenz:2021-07-08

From Neos Wiki
Jump to navigation Jump to search

Geenz's Bi-Weekly office hours for graphics.

Here are the notes from the 8th July 2021.

These are rough notes typed by ProbablePrime. If there are errors please edit away!

Recording

Not available in this case Prime forgot to push the button :(.

Summary

Please do remember to check our Roadmaps as a lot of questions here are partially covered there. Do continue to ask them but the roadmaps are there for you to read:

Announcement on Color Management

Color Management is almost ready!

Start getting your content ready for Color Management Testing. We're going to release some danger testing builds soon for you to test with.

Questions

ElektroSpy

Electrosky had a lot of pre-cooked questions so the formatting here is a little different:

Question:

  • Since some people brought up some different game engines last time and we now know that epic for example doesn't like dev's building other engines inside their own.
    • Have you consider using more "barebone" frameworks like The Forge instead of a "prebuild" game engine, since they seem to include a lot of features we want covered for neos, without the same restrictions?
    • https://github.com/ConfettiFX/The-Forge

Answer:

  • The new Neos Rendering Engine is actually being built/looked at being built on/based on the principles of The-Forge its good.

Question:

  • Follow up question on the "combined" reflection / light probes from last time
    • did you consider doing a similar system like godot 4.0 does?
    • aside from the manual placement of the probes, it also allows you to generate a 3D grid, which stretches across the whole scene and seems to dynamicly scale based on distance, kinda like lods for meshes.

Answer

  • Yes and No.
  • The first iteration is going to have a Light Probe which consumes a reflection probe.
  • certain constraints
    • Light probe not update each frame. Maybe once or twice a second. Interpolate between them etc.
    • Idea taken from Unigene and Forge etc.
  • Ultimately everything will be a component so you can place them per normal
  • Automation, there might be tooling later down the line including how to palce them efficiently.
  • Its coming, but we're taking a progressive effort to get us towards AAA light probes

Question

Answer

  • Not any time soon.
  • Light probes will help here.
  • More after the new rendering engine.
    • Just a matter of when over time

Other Questions

Shadow Panther Q: Geenz: when you finish with lighting (linear/gamma space), what is the next milestone you are planning to set for yourself?

  • A bit up in the air, I have to write everything for the new engine
    • I want to add colored Light cookies with full color.
      • Arbitary Color Texture applied to Textures. More than tinting.
    • Standardize the options of PBS shaders so that its consolidated and unified.
    • Drop downs based on standard options.

Hodufan Q: the bulk of frame time is done by rendering according to the debug panel. any idea of planned optimizations for it?

  • That depends somewhat on the computer
  • More often than not Geenz is CPU bound not GPU bound
  • There's defo some CPU througgput issues but when it comes to the GPU its shadows which are difficult to optimize due to no baked lighting etc.
  • We're currently using deferred, which isnt ideal. We'll move to a tile based forward renderer. This should optimize stuf well.
  • for shadows Geenz isn't sure what the best option is right now but will be looking into it.

Electronus Q:Having heard about materials stacking being unsupported on the new rendering engine I was wondering what kind of compatibility will be had with items using it, and what will be replacing it, if you can share?

  • Unfourtunately, we're in a situation where we're not going to be uisng unity in time. So there will not be a 1-1 situation for a lot of things in terms of transition.
  • Replacements depend on the usecase. We can upgrade to a more efficient setup for setups such as material stacking etc.
  • Sometimes we're using stackin in place of custom shaders and the new engine will support custom shaders so we can move to that for material stacking
    • for other use cases please make a GH for discussion to see what you're using it for.
  • Electronus: I don't know what you mean by the difference between using it as shaders and not, so if you could explain that that would be nice, but thanks for the answer!
    • Some uses of this are similar to a Material swap to get around PBS Lerp.
    • In other envs, you'd make a shader that transitions between the parameters you need.
    • Material stacking isn't ideal so we need to figure out how to handle it. Its all fine and good, until you realise you're re-drawing the mesh each time you add another material.
    • Its more of a use case for custom shaders.

Here's an example of material stacking: https://discord.com/channels/402159838827905024/478886541058375695/858655691463720970

GunGryphon Q: Is there any in game VRAM usage indicator?

  • Not right now, we want to add it but its not the most straighforward thing to do. You can kind estimate it but not right now.
  • Open question for the community: Please let us know what types of tooling for the new rendering engine would you like.

Beaned Q: will we in the future keep the dual sided PBS material or will all materials just have a culling option on it?

  • Yeah that kinda comes back to the shader standardization stuff. Its not exposed on all shaders. We could do a better job via consolidation.
  • Culling, Z-Writes could all be consolidated to all shaders.

Beaned Q: Q: if we are talking about custom shaders, will the programming be ingame like logix?

  • Like logix, but shader focused.
  • Will differ from Logix, we don't care about pulses etc in logix but you do care about Variables like the camera, surfaces normals etc. and the outputs colors etc.
  • Basically, yeah logix for shaders

Spex Q: When discussing the idea of custom shaders, are we talking about supporting GLGS/HLSL code to be imported? Shader building tools that only exist in-engine (akin to LogiX)? Or maybe both?

  • We don't have plans to expose GLGS/HLSL to you, for security etc reaons
  • We don't want Arbitary shader code to be exposed to our users.
  • For support:
    • Vertex and pixel shaders
    • Geometry...Maybe. An Analogue to that perhaps? Mesh Shaders are a future candidate.
      • For example a toon shader through a Geometry shader will be possible.
  • Constraints might be placed for certain authors/types of authors for safeguards and security
  • We don't want shaders to crash people.
  • We don't want "IT WORKED FINE ON MY COMPUTER" which completely tanks/breaks certain GPU/PC setups.

GunGryphon: Q: any plans for limited Blender shader import compatibility?

  • We hadn't thought about that, if its something relative straight forward. If there's a path to get us to convert them we'll have to look into it.

Electronus: Q: I know it probably hasn't been designed yet, so I understand if there isn't an answer, but will there be anything to prevent people from making shaders designed to tank framerate/obscure views?

  • Yes as mentioned above.

Spex Q: Follow-up: If we're talking about a system akin to LogiX for Shaders, could they work together? Like connect a LogiX node that does math and drives an input on a Shader node? Or would you have to do LogiX, put it in a variable or component, and pass it along to your Shader nodes?

  • Yes
  • You will be able to drive exposed shader variables through regular logix and components as you can today.
  • Audio Reactive etc yess!

reddragon Q: are there any plans to support textures with custom Mip-Mapping built in?

  • This has been something that has been thought about, it would ahve to go through the asset variance system.
  • I dont know why we couldn't import an image and have the mips set.
  • we'll see.

Alex Q: Cheese?

  • Aged White Cheddar please

Jiink Q: For SSAO, will the current implementation have its settings changed, or will there be a new kind of (SS)AO?

  • Complicated and highly suggestive.
  • SSAO will change slightly, it wont be as Gloomy, it will still darken as it should but we'll also with linear lighting get less strong fall off.
  • we need to make sure everything is VR Friendly et.c
  • Right now, no major plans to change the AO implementation yet.
  • New engine will potentially have a new AO implementation.
  • Too early to dive into this.

Enverex Q: Is there going to be anything implemented to mass change filtering (e.g. Bilinear, Trilinear, Anisotropic) in a world (or by hierarchy) before any of these big graphics engine changes?

  • Thats not really something that Geenz has thought of.
  • Its certainly possible but not planned. Depends on priority etc of this.
  • Could be part of an update on tooling.

Spex Q: Any plans for proper HDR support for desktop users with HDR monitors? (And hopefully, one day, HDR VR headsets)?

  • That's why we're caling it color management, you wont see HDR support yet but its building stuff around that.
  • It will come at some point. We don't know when. It does require a unity engine update.

Crusher5000 Q: Are there any future plans for foveated rendering?

  • More easier to do in new render.
  • foveated rendering wouldn't buy us much in the current engine.
  • Once we go more towards GPU bound optimizations foveated will help more.

Timing/release dates for any graphics features are not available atm. Please check the roadmap