All right, we give everyone a good few minutes to jump in
before we really start.
As a reminder, you can post questions in this form thread, uh,
that I posted in the office hours, uh, chat.
All right, I think we'll go ahead and get started.
Uh,
let's see. You're pretty light on questions. Um,
so this will probably be a quick one.
All right.
Uh, it's here
trying to think of any particular updates that I can give you guys right now, I think,
kind of sick. So, been a little bit slow on getting stuff done lately.
Um,
sauce is still progressing at this point in time.
Um, we're probably gonna be merging in a pretty substantial, uh, pull
requests from earthwork on that one
to,,
maybe get a few things, uh, a little bit more in order on some of the, uh,
interop stuff.
Um,
that's actually been going really well. Um,
we found a pretty fast path for interop. So,
um, that means, uh, better performance across the board and
all sorts of neat stuff like that.
Um, I'm hoping that by the end of February we'll be able to have, uh,
basically a an extremely basic renderer that we can share with you guys.
Um It's probably not gonna be anything too amazing.
Um But it will go through it at least
draw a few objects here and there um and use a few shader as well.
Uh The full implementation for the TOBA
forward renderer probably won't be arriving
until probably sometime in the summer.
Uh Once that's in and we have lighting and shadows in there as well,
we'll probably end up um
start the process of integrating with resonate at that time.
Um This is, of course, is depending on other factors.
Uh Obviously,
I don't have full control over the entire schedule
as far as what we're doing on the team
for development stuff.
But that's when I'm hoping uh sauce will at least be ready for these steps.
And of course, it'll be open source by that point as well. So
any of you guys can go through and
peek at it, mess with it,
develop on it,
submit pull requests for all that fun stuff.
So, yeah. Um
I think that's all I got as far as like a sort of housekeeping uh stuff.
So we'll get into the questions here and uh please feel
free to like post more questions uh into the question thread.
Um And please don't wait for
the thing to start to really start posting them, just get them lined up.
So, uh let's see,
Alpha Neon asks, uh this has probably been asked like a million times before,
but in regards to sauce will be easier or implemented to
disconnect the take rate of Fruits engine with the renderer fps.
Uh That's something that we've been exploring a good bit
and going into like a sort of um pseudo retained renderer in a sense
wherein the renderer is always functioning at a
different tick rate compared uh well on its
own tick rate as compared to an engine
that's utilizing uh sauce as a rendering output.
Um
There are a lot of complexities around that though.
Uh Notably,
we have to make sure the signaling is just
right between Fruit's engine and the renderer tick rate.
Um Like Fruits engine basically has to inform us
whenever it's finished putting a frame together for us.
So we can actually present that frame or at least
update everything within the renderer so that that's properly reflected.
Um
There's certain overheads involved with that as well.
Uh Obviously, you're gonna have what Fruits Engine see
um with regards to what the scene should look like
and how the scene should be rendered versus what sauce sees
and what sauce needs to do to render the scene.
Um So you kind of end up in this situation where you end up having a lot of copies of
other things and part of the point of sauce is
to reduce or remove those copies wherever we can.
Um So we'll see how that ends up evolving I get the feeling that
the first version of salts are probably just gonna keep it simple just,
just so we can get it into a Shipp
state.
Um And then eventually we'll probably go into a more retained style renderer.
Um After, after that gets shipped.
Um
So yeah,
lots of po potential there, lots of possibilities,
but we're gonna be keeping our eye on making sure this is ship
Shipp
sooner rather than later.
Uh Next, we have a question from Oz.
Um for performance reasons, do intensity zero lights have impact
or does it have to be directly disabled? Uh disable it?
So unity will consider any and all lights even if they're at intensity zero,
It's either gonna hit you on the CPU or it's gonna hit you on both the CPU and GP U.
So I would just go through and disable it if you're at intensity zero.
It's gonna be that way for a prolonged period of time.
If you have one that's just have like a light that's just flickering on
and off or if you just have it like fading in and out,
then I would say like, you know, just keep it enabled during that.
But if you have like a light switch
and that light switch turns off a light,
just go ahead and disable the whole damn light
and feel free to ask questions about like engineering related things.
Um Business stuff. I also work on the business team,
um stuff like that. So, like,
don't have to just ask rendering related questions.
Euphoria says, tell us something interesting uh plan for sauces feature set.
Uh
Well, actually mesh shader is gonna be an interesting feature.
Um But we're gonna have to emulate those on
hardware
that predates the RT X 20 series.
Uh So mesh shades are really cool in that. Um
Well,
instead of having like a separate vertex geometry
and tessellation stage uh within the pipeline,
you have like a combined geometry stage.
Uh Instead of working on complete meshes,
you actually work off of uh these tinier mesh lets
which can only be up to a certain size. Um
You can still emit new geometry, you can still tessellate that geometry,
you can still move the vertices around on that geometry.
But um
instead of just doing this in separate stages like uh we used to do before.
Now it's all part of a unified geometry pipeline.
Um And they're all compute shavers too. So
bonus points
um
we're probably gonna put some limits on how
much uh geometry can emit using mesh shader.
But um that's mostly just to like, you know,
prevent people creating like geometry shader style crashers and stuff like that.
Um But this will actually give you a lot more
creative control over how your meshes uh are tessellated.
Um how you generate, for example,
an outline around a mesh use by generating new mesh geometry.
Cool stuff like that.
Um,
so, yeah, that's, that's gonna be a pretty cool feature. Um,
and, uh, since it's gonna be compute driven as well, um,
that means we can make it work on older hardware as, uh, as well as newer hardware,
uh, newer hardware.
I haven't made any final determinations as far as
if we're going to stick with the emulation route
or if we're gonna end up switching over to native mesh shader support down the road.
Uh Since all this stuff is gonna go through
proto flex anyways as far as shader creation,
uh we can go through and get some statistics uh on what you're trying to do.
So we can probably still go through and
limit uh place some rather relatively same limits
on uh the mesh
haters. Uh Once we have proper native mesh
hater support on newer GP US,
uh that is once W GP actually supports it since right now,
they only support vertex and frag and compute.
So,
uh also fun fact, all shader compute shader, which means you can just literally rele
the entire raster
pipeline if you want uh through compute. And in fact, uh one
popular game, well, actually a lot of popular games do this now.
Uh Doom Eternal does it
um as does the more recent Call of Duty titles, uh Unreal Engine five does that
to an extent.
Um And all the recent battlefield titles do that as well.
So, yeah,
there you go.
Funny. Mesh shader and emulation on older hardware.
Uh shadow A X asks, will we get support for a
lights or point lights with defined uh RR uh radiuses
uh and saws.
Uh
I mean,
I haven't really decided on the specific soft shadowing method we're gonna use.
Uh I do want to support area lights um
using uh what was it? Uh
LT CS. Yeah. Um
So like LT CS are really cool and that you can actually
create arbitrary geometric shapes for point lights or not point lights but a
lights uh and just throw them in the scene
and they'll generally illuminate about how you'd expect.
You can even get like some GGX style highlights off of them
depending on how you uh convolve them.
Um Shadowing though is a much more difficult ask for those things. Uh
Nowadays,
what people do is they just kind of skip out on the LTC side of things
and they just go straight straight up for um just doing straight ray tracing on those
though.
I don't think our hardware demographics are really
particularly conducive to ray tracing right now.
Um
But
definitely Lt CS could be a thing that we look at for, for area lights.
Um I just that the shadowing part is gonna be the difficult side of that.
II I would need to go through and
take a good look at some uh potential options to support uh shadowing.
Generally on those point lights are much easier affair, obviously. Um
having like uh
uh
an um
a separate umbra and Panama
with contact shadows,
which is really what you're looking for
where you're discussing having like a radius
on the actual uh emission source.
Uh That's gonna be a bit of an interesting one.
There is percentage closer soft shadowing,
which is a potential approach. It's been around for years.
Uh It's only really become super doable on modern hardware.
We may do something like that and you just have like a shadow angle, basically,
maybe not necessarily a radius of it.
We'll, we'll see how it works out when it comes down to the actual UX side of it.
Uh But that could be a potential option.
Another one could be uh screen space contact shadows or screen space shadows.
More generally,
I haven't seen too many games pull that one off uh very well though the,
the Dead Space remake does it really well.
Um And you can kind of sort of get away with it and Unreal Engine five,
but there's a lot of places where you
can really notice where the contact shadows just
don't really line up properly with the uh with the umbra of the soft shadow.
So
few possible options here, definitely a research item,
but I don't think that's gonna be a launch feature.
Ozz asks has the update for unity minor version been
stopped fully by strange post processing slash rendering issues.
Uh I'd say it's more on pause right now because of those things.
There's just, it's, it's getting into, it's getting to a point
where
anything past 20 19.4 0.19
like
the deferred renderer just breaks more and more the deeper,
even in the minor versions you go
uh when it comes down to VR,
so to give everyone some context here,
uh
whenever you try to go through ju jump into VR
with um
anything past 20 19.4 0.19
this includes 0.20 as well.
Uh The post processing stack will just go through and freak out on you.
Uh You'll notice that at first you'll think. Oh, well, it's just bloom. That's bro.
Broken. No, it's not just bloom that's broken.
The whole thing is broken.
Uh,
you'll look around and you'll notice that the
scene is just getting brighter and brighter and brighter
to the point that it's eye blindingly bright within
like seconds.
So, uh,
that's a really big problem.
Uh There is a workaround for it which is disabling single pass rendering,
but that also has a performance hit associated with it.
So we haven't really done a proper evaluation on if that performance hit is worth it
to fix a couple of bugs here and there.
So, yeah, unfortunately, it's, it's just,
it's, it's a, it's a problem and
there hasn't been a whole lot of time to really
dig into it too much. That's also one of those sort of bugs.
Where you're constantly chasing, uh,
various different causes and you'll end up coming
across a lot of red herrings as well.
Uh, and sometimes it could, it could just end up with, sorry,
you know, he has a big brick wall around this, around this thing.
You can't really do anything about
it.
So, yeah, unfortunately it's on pause for now.
Uh,
Afon
asks how will
sauce work with fruit sy?
Will it be kind of like how resite
works now telling uni where things are meant to be?
Not necessarily? Um
So
we actually want to completely redo
kind of uh the the runner side of things.
So the runner and Fruits engine and resonate,
that's kind of like what connects Fruits Engine to an output in a sense you could,
you could say
uh we have one for the headless, we have one for unity
and we kind of wanna just completely redo that
um especially once we get to the point of like multiprocessing,
support sand boxing and so on,
like that's gonna have to be redone anyways. Um
Just so we can better communicate, hey, this is where this asset lives,
you need to load this whatever Fruits Engine needs something to update
what we want to get to.
Uh as, as close as possible, at least
is getting to the point of having,
you know, the scene representation not be copied over.
And instead there's just one source of truth,
we're always reading from that source of truth uh from, from sauce.
Uh Whereas right now we actually do a lot of
copies to make things work between Fruits engine and unity.
It's actually one of, one of our,
it's one of a few bottlenecks that we have to deal with today.
So
still trying to figure out how exactly we're gonna handle that.
Um We have some really early discussion around that but nothing concrete yet.
Oz asks, how are the Quest pro I slash Face tracking integration working?
Well, it's
waiting on review.
Really. That's all there is to it.
So it's sitting in a branch somewhere.
Just fruits, needs to review it. That's where it's been stuck for months. Now
shadow asks the shadow X asks,
how easily easily would it be to natively or as a plug in,
add new shading methods such as ray marching or
Goss and flatting to work alongside normal shader.
Uh Well, you can't,
it's really that simple, not without
some mods basically. Um
So we do actually do validation checks on all of our
shader to make sure they're coming from a single source of truth
and you can't really override those checks unless
you're using a modern version of the client.
Um I generally don't recommend doing that because we can and will break
things and we're not going to cry about it when we do.
So, just a heads up. If you do try to do that, you're doing that at your own risk,
but otherwise you can't really do that right now.
Uh, with sauce, you'll be able to do that though. With
SSA shader,
you'll be able to come up with
entirely different lighting models and stuff like that
and you'll be able to apply it on pretty much anything in the scene.
Uh, specs, asks,
do you have an Apple Vision Pro coming to experiment with
any thoughts on what has been said of it so far?
So, yes, I do, I actually am picking one up this Friday.
Um I'm not entirely sure if it's really
gonna translate into anything for resonate specifically.
Uh We'll see where that goes. Unfortunately, Apple just,
they're douche bags. I I there's only, that's the only way I can really think to put
it. Um
Sorry if there's any Apple fans in the crowd.
Um But Apple is increasingly aggressive towards developers. Um
And given what we need out of the platform,
it makes a lot of development efforts uh complicated to say the least,
the fact that there are no controllers would mean that
we need to develop a whole new uh interface to
do hand tracking and eye tracking uh based inputs, which isn't a problem.
Definitely, it's something that would be very interesting to pursue for,
for on our end
and try to make the platform work around
that whenever you're in a situation like that.
Um But
the bigger problem is going to be lack of api support for iron face tracking,
for example,
uh they don't really expose any of that out of concerns for privacy.
Um And my own opinions on that.
I think that's honestly a misnomer,
especially whenever an app can go through and start requesting
um a 3d scan of your bedroom or living room, for example, which
that kind of circumvents any and all privacy uh
claims I think that they've made so far. Um
I think that there's gonna be some interesting takeaways in terms of U I and UX.
Uh from the Vision Pro Apple has classically been
pretty on top with having good U I and UX and mandating that uh
apps that can publish with their App Store has good U I and UX.
So I think there's going to be some interesting stuff there.
But as far as reite coming to the Vision Pro anytime soon,
I don't see that happening.
Uh It's uh I, I honestly, I think that if we had a bill today and we submitted it,
Apple would deny it for
insert arbitrary reason here from the App Store.
So,
yeah.
Oh Shadow X is clarifying that um
They were asking a question about sauce not
resonate today with regards to um new shading methods.
Yeah, with sauce, you'll be able to do all that.
Um That wouldn't be a problem.
We're not gonna force you to stick to one BRDF or shading mechanism.
Uh You'll be able to develop your own.
Uh However, you like, we'll give you all the tools and nodes that you need.
Like for example,
getting a list of all light sources that are affecting a given tile.
Um Stuff like that,
turn that up a little bit. There we go.
Uh We may actually get
Dawson splatting sooner rather than later.
Time permitting.
That is uh we, you can already actually do that inside of unity uh with,
with some work,
but uh we just don't really have the time to do that right now.
The crow devil's uh BK asks, what is the eta with sauce actually?
Well,
the hope is by end of fall, we'll start pumping out builds with sauce. Uh and rein
I integrated together.
Um That's the hope we're not sure we're gonna be able to hit it,
but we're gonna try our damnedest.
Uh at the very least sauce should be in a workable
state uh where you can start building projects off of it.
If you want to like build a game from scratch or something, you should be able to use it
as a stand-alone rendering engine at that point in time.
Um
But we really hope we can have it integrated with resonate by the end of fall.
Uh Either way we don't want this to this, this effort to go into 2025.
Uh Because sauce would also unlock, for example,
uh stand alone support uh stuff like that.
So
Durian asks, what are the plans for shading API do you plan to limit it in any way? So to
be TBA renderers have no problems?
Yes, we do actually.
Um
I mentioned previously not sure if you were here for it,
but uh pretty much uh we will be limiting
mostly things in the mesh shading side of things.
Um So like how many primitives you can emit stuff like that?
Um
Most basic vertex movement operations and stuff like that,
that's all gonna work just fine.
Um
But otherwise like,
I mean, really it's just the
uh geometry emission stuff that's gonna be limited
and that's just to prevent
people or at least mitigate people, people making uh geometry shader crass
and things like that,
we'll probably also have some sort of auto scaling built in.
So like
uh we already want to build out like a graphics quality system,
the content creators can use. So you can do like low, medium, high
ultra whatever.
Um
So you'll be able to also be able to tap that and say, OK, well,
if I'm on low end hardware, then,
you know, maybe I don't want to tessellate the surface very much,
we'll also be able to expose hardware capabilities as well.
So for example,
if you're on a piece of hardware like a quest two
that doesn't have any sort of like tessellation capability built in,
it'll go through and say, OK, well, I don't have tessellation on this platform.
So I'm just not gonna do I'm just not gonna do that stuff.
A lot of it's gonna be uh on a platform by platform basis.
Uh We'll do some automated, some automatic stuff for you.
So you don't have to worry about porting your shader from like desktop
to like high end desktop to a really low end stand alone headset.
Um
but not everything is gonna be automatic. So you'll have to,
you know, do your own testing for performance reasons and stuff like that.
Uh Gareth 51
first apologizes for how big this question is
but also asks,
there's
a lot of hype surrounding Gossen splatting as a new rendering strategy.
But the only time I've ever seen it used is to capture real life
scenes and render them quickly and correctly
as an alternative uh for photogrammetry.
This is super neat.
But how will it help for offering content in a game engine like resonate
will switch the workflow to all photo scans or are there
ways to author ultra realistic content with this method?
For example, rendering a scene in Blender or another engine?
How easy is it to interact with uh Gossens flighted environment
thinking real time lighting avatars, moving props, et cetera.
Everything I've seen has been very static.
Well,
I'm gonna work backwards on this one.
There's a reason why everything you've seen so far is very static.
It's because you don't really have a whole lot of
information on like what the BRDF of A scene is,
for example, so like you don't really have a whole lot of information on normals,
you have positions and you have colors which are like the two main things you have.
Um It's a similar problem if you use point point cloud data and stuff like that,
like you only really have
um what your scan was able to produce and goss and splats don't really
like actually store a whole lot of data
for you.
Um
Now that being said,
I've worked on some projects that have like point cloud information that has like,
you know, surface normal for a given point.
Um
Albedo some authored specular data in there as well.
Uh But that's usually pretty intensive and not
usually super worth it for what you get
out of it when it comes down to like having real time lighting applied and such.
Now that being said,
if someone has created like some Goss and splats that encode this data,
we could probably look into uh supporting that.
So you can have like more uh more dynamic lighting and scenes using Gossen Splats.
But uh you know, I'd have to see some examples of that in theory, it's not that hard,
but I don't, I just don't know of any software that's really output that kind of data.
Um As far as how you'd use something like this um for,
you know, authoring something in one engine and bringing it over as a Goss
Splat
first
probably shouldn't be doing that.
Instead, you should probably be asking for features that are,
you know, part of that game engine.
Second.
Uh due to how due to the very nature of Goss and splatting and how it works,
you're gonna lose a lot of data that way.
Uh Goss and splatting, you still utilize photo
photogrammetry data to go through and build those things out.
But otherwise,
I mean,
yeah,
so really, it's a matter of your,
your tooling for that sort of thing is only uh like the,
the the end result is only as good as the tooling
that you that you're using for these sorts of things.
I don't foresee us really ever going for like a pure Gossen splat
set up.
But you know,
we can definitely make the option available to people if they wanna use it.
So
uh yeah,
speed at lots of pictures.
I just realized that uh
my cough is gonna come up on the recording of this thing. Whoops.
Yeah. Keep those questions coming guys,
I guess uh while I'm waiting for, for questions, I can talk about some of the uh
stuff that I'm planning to do in the relative near future.
Um Mainly on the unity side.
Um
thinking of putting together like a little graphics care package.
Um
Basically what that would entail is better anti
aliasing uh going for a temporal style of anti
aliasing. I've done a few tests.
Nothing that se seems to stand out with uh unity's temporal anti
allies with the right tweaking.
Um
add some more defaults for a lot of the material slots.
So like for example, the color splat um material
uh going through and having the splat texture be defaulted to linear space
for that. It's probably a good idea,
small things like that,
maybe go through and
add some uh extra lots for like filmic
toe mapping, things like that.
Um To the essentials holder
Glavin asks,
is there plans for sauce to include metrics on what
slot slash portions of the hierarchy are using what resources?
Something that's like a Windows task manager is being able to see
the light in this campfires using soft shadows,
which is using uh 2.3 milliseconds of frame time to the scene.
So we do want to go through an a general performance
metrics uh collection so you can go through and you know,
click on a part of the scene hierarchy and then just like click
a button to go through and gather performance statistics in real time.
Um
I haven't really settled on exactly how we're going to be presenting this.
But the basic premise is you're gonna get two sides of this because you know,
we're really more of a game engine than anything else.
Um
Like you'll have the basic stuff.
I click on slot, I click button,
I get performance metrics for that part of the hierarchy.
Maybe we're gonna have some rendering stuff in there as well.
I have to go through and uh go through uh what all we
can really collect on that end from inside of unity right now.
Uh sauce obviously will have better performance timers and stuff
like that that can be tapped in real time.
Unity is a little bit weird about this.
And then you'll have like the super fine tuned like,
you know how to, you know how to use a profiler like Tracy, for example,
and you wanna see like sub
millisecond uh metrics and stuff like that,
like getting down to like the PICO second.
Um
So yeah, you'll have like 22 different ways you can profile things.
Gareth 48 asks
the specular standard used by resonate seems to differ
quite a bit from ones used by other platforms,
namely the Substance Suite and Blender's default specular setup.
Is there any program
you know,
or can recommend uh that out of the box supports
a specular pipeline like the one we have also,
if you have it on hand, what version of unity is our specular uh center based on?
Well,
only unity really
because unity reasons
pretty much um
a lot of unity standard PB R stuff uh
was created before we had proper standards around this.
And uh
I mean, hell even Marmoset,
um which was really setting a lot of the standards around the stuff early on.
Um it differs substantially from unity and nowadays, it looks closer to unreal.
Um
So yeah, unfortunately, only unity is the only app that really does this properly.
You can get kind of close if you use um
substances built in uh unity standard specular uh export options.
But even then like last I checked those are deprecated anyways.
And as for the specific version of unity to target 20 19.4 0.19
what I want to do eventually is make all
this stuff uh standards compliant with uh GLTF.
Um
GLT nice thing about GL the GLTF standard when it comes
down to its uh shading models is that they just,
they literally spell out all the math for you.
So you don't have to make any guesses or like really fill
in any blanks as far as what math you should be using.
It's just, yep, this is the standard now use this
uh whenever I eventually get around to iridescence and stuff like that,
it's gonna be using, it's gonna be uh built against the um
it's gonna be built against the JLTF standard.
Also, Sauce's renderer is going to be by default GLTF uh
compliant for
all the fun uh
PB R stuff.
And you're not getting anisotropic normals until sauce
just because we use a deferred renderer.
And we are not encoding tangent information for
anisotropic normals.
That's just not really that practical.
But once we're tall based forward,
you know, sky is the limit
like all the shader and all the shading models at that point.
Even really silly ones
can't wait to see someone try to build Cruelty Squad entire in an,
in an entire compute shader.
Yeah. Go
on shading. You'll be able to do that too.
If you wanna do per pixel lighting, you'll be able to do per pixel lighting and sauce
or not per pixel but uh per vertex rather.
Yeah.
Or even per face,
you know, uh mesh
haters. They're, they're pretty powerful
QB asks and the functionality of the
slider for metallic slash specular textures be improved
to act as a multiplier given it that it currently does not adjust the values.
Well, actually
on some shader,
there's a little tick box called multi value tick that then it acts as a multiplier.
We can look at going through and introducing that into more shader.
Um go through you just,
just follow github of which shader you'd like to see
that tick box on and we can add them,
I believe right now. It's
only supported on a small handful of shades like PB, the PB Slurp collection
and the regular um PBS standard and PBS specular shader.
Yeah, just tick that box and it'll act as a multiplier. You can even overdrive it.
So by default, it should be ticked on new content on old content.
We disable it by default just because
that can break things.
And in fact,
see
steam there it is
actually I may need to go through and take a
look at the multi value stuff because it looks like
it may not be on all the shader that's supposed to be.
So I'll go through and take a look at that
because we do have support for that at the shader level.
I know that for a fact,
but I'm not seeing it
in the actual U I could just be that never properly got wired up into the U I.
Oh, ok. There it is on PBS alert.
Why isn't it on our regular ones? Hm.
Oh, well,
something look into where I get the little graphics care package together.
We are at
45 past the hour here in a little bit. I'm gonna go through and do a question cut off.
Anything else that gets submitted after the question cut off
uh will not be answered?
Yeah, I'll look at it, it looks like it's not properly wired up um, on certain shader.
Uh If you go on the PBS Slurp, uh either of them it should be there.
Um
But yeah, I'll go through and look at the other shader.
Like I said, I know that it's sup
that we support it at the share level.
It's possible that just didn't quite get exposed. Um
uh uh uh in the U I. So
no, we're still going
keep on asking questions. You'll know when it's over.
You'll see something in the chat saying it's over.
Yeah, cause I wasn't really saying anything
we'll do a question cut off at 55 past the hour.
So I'll get your questions in.
That's in just about seven minutes.
Nucleus.
Is there,
is there a way to use PRO FX to quickly remove part of an object based on material?
Uh Yes and no.
What you can do is that you can swap the material
on an object.
Uh If it's a multi material, one, you can just go through and
drive that field
um
to swap it to like an invisible material or something like that.
Alternatively, I think you can do and I do this in a couple of my avatars
uh to like hide feathers and stuff like that.
You can go through and have a material that has uh an alpha,
an, an, an alpha clip uh
texture or shader on it.
Basically what you do there is that you'd add like some sort of like semi
transparent alpha to your albedo texture,
but
you'd go through and set the alpha clip value,
which basically determines uh when at what point does the shader
consider that surface to be fully transparent versus fully opaque?
You can set that to something really low where you want it to be
opaque and set to something really high whenever you want it to disappear.
So there's a couple of ways you can really do that
like, so um
uh
Lexo
asks, uh would you be playing any set by default, uh post processing for sauce
Yes, you get linear tone mapping. That's what you're getting by default.
Um
Otherwise, I mean, we'll probably have
something that vaguely resembles the current bloom.
Um And it's currently nerfed state.
Uh We're not gonna make it any stronger than it is right now, at least.
Um But those are gonna be the main two things that you're gonna have uh
ambient occlusion is probably gonna be properly moved to uh the to,
to the ambient pass la sauce.
We tried some stuff uh with ambient occlusion um on resonate through unity.
And the, the problem is is it just doesn't really work with uh tomb shaded objects,
which is a bit of a problem.
So we kind of abandoned that uh
there's not really a great way to, to,
to support that in unity without more work than what we're
really willing to put into the unity renderer right now.
Um But yeah,
UK S is there a way to recombine meshes into a single mesh again?
After splitting them with the material thing,
you can merge meshes
that have the same material
like that's the thing you can do.
Uh But
I don't think you can really merge multiple meshes
that have um
different materials.
I don't think we really have, I don't think we have a tool for that.
We may and I'm just not recalling. But
yeah,
h he also asks,
is there a way to make a material always
be rendered behind others to avoid Z fighting.
Yeah, you can use render offsets for that.
That's the thing you can do.
Um You may need to go through and make uh set the
object to transparent though in order to really make that work,
otherwise opaque objects are gonna like they're,
they're always gonna be rendered to the depth buffer.
So you'll always have to fight, you know which triangle needs to be rendered. Where
you,
he asks, what is the cheapest material?
What is the cheapest one that still reacts to light and shadow?
The cheapest you're gonna find is gonna be the the PBS set of shader.
Um That's gonna be like uh PBS specular or PBS metallic
otherwise, I mean,
you may think that the tune shader is the cheapest
but it's not, it very much isn't
just stick with the PBS shader if you want cheap materials.
Ok. Two more minutes before we cut off questions,
anyone have anything else can be business related
can be rendering related can be engineering related.
You. He asked what's your favorite thing to do in resonate? Mostly hang out
chill with other people.
I don't do as much building as I used to in resonate.
But
yeah,
d
what are the security concerns with loading, custom shader variants?
Oh, I don't know. A crasher.
Those are stupid. Easy to go through and load in
geometry shader. Crashers are big one.
Um
You can actually grief people pretty hard with custom shader which is why we're
taking a bit of a measured approach when whenever we have them in sauce.
Yeah,
Mr square peg.
As so a while back there was talk about switching game engines away from
uh one sec.
Uh So a while back there was talk about switching game engines away from unity.
Is that still in the cards? Yes, that's exactly what sauce is.
Sauce is uh from the ground up. A new rendering engine for resonate.
Uh Once we have sauce implemented unity just instantly goes away.
Q Bs would a flex no debate, non driven blend shapes be possible.
I mean, you should be able to do that with one of the sync methods
that should be a thing you should be able to do on a mesh.
Uh If that sync method isn't exposed, I would put in a future request.
Shadow Xs will the rendering of Uix change with the switch to sauce?
No, not really. Um
We may go through and
make a few improvements under the hood for Uix,
but the same basic renderer is still gonna apply.
Uh Mr Square
peg says, can you tell us more about sauce? Um
Well, I mean, um
I talk quite a bit about it if you come to um these office hours a bit earlier,
but uh basically, it's a brand spanking new renderer.
Uh We're building it on top of uh the W GP U API.
Uh Most of that's just because it's easy to port from one platform to the next,
it supports all the major rendering API S like direct X Vulcan metal
though, in our case, we only really care about Vulcan and metal.
Um
So yeah, there's those are that, that, that's a thing. Um
It's gonna be using a towel based for renderer
which means you get a lot more flexibility for
um you get a lot more flexibility for shader uh different shading models,
things like that.
Um As opposed to where we're at today,
where we're using something called a deferred renderer
where you have a very fixed pipeline,
you can't really go through and create new um shading models
on a deferred renderer without a lot of extra steps.
Uh
You will
usually find that that's actually a pretty big performance strain
uh And your shader grow very quickly whenever you try to
do the un deferred renderer versus a tall based forward renderer,
where
you,
where you still get many of the benefits of a tow uh of a full
on deferred renderer such as being able to have lots of dynamic light sources.
Just you get the flexibility with forward as well.
Uh Lots of games have shipped with it.
Uh Doom 2016 ship with it.
Uh Doom Eternal ships, a software raster
variant of that though they use more clustered shading
uh both in Doom 2016 and Eternal.
We're probably going to forego the clustered shading just because
that doesn't seem to map very well
for like,
you know, actual hardware raster organization
uh and doing full software raster
is gonna be a bit of a trick with custom shader in play.
Um We're gonna support mesh shader fragment shader and compute shader uh with sauce
and uh should generally be far more performant than
uh what we get with unity today as well.
Uh Mesh haters will be emulated on hardware that doesn't properly support them.
Um So like anything for an RT X 20 series
or a um Radeon Rx uh 6000 series on the A MD side of things.
Um
But yeah,
lots of things come with sauce.
Uh A big one is for us is gonna be a.net version upgrade,
but we're talking about options to maybe bring
that sooner than later just because that would actually
be a pretty big uh performance improvement for us just by nature of using uh newer VM
and all that stuff from.net eight versus the very crusty and old and
in many ways broken uh version of mono that we have to deal with with unity today.
Sauce is also being built against.net eight
just for reference. So
yeah,
we are coming up on time.
Thank you everyone for joining in today
as a reminder, these happen every other Wednesday at five o'clock pacific time,
uh 5 p.m. pacific time. That is
uh
for some reason, the event got removed from the calendar.
I don't know what's up with that, but it's been re added.
Uh But yeah,
uh well, Shadow X, I mean, there's been a lot of, um,
there's been a lot of uh thought that's went into sauce so far.
Like we, we already knew which rendering method we were gonna be using
like years ago
for this thing. And I'm ok with going a little bit over time to discuss this. So,
um, but yeah, like
whenever you have a game plan in mind, things tend to go pretty fast.
Sauce isn't really intended to be a research and development project
for an extended period of time.
Um The biggest thing that we just need to do is
we need to just make sure resources all load correctly.
We have a concept of lighting in it. We have,
you know, the ability to go through and split the scene up into tiles,
batch lights into those tiles and render a scene.
Um
We're not really, our MVP is basically,
can we match the quality that we're shipping today
as a bare minimum?
So,
and that's not really that difficult to do whenever you
think about like really what makes a renderer a renderer?
Um You have meshes, you have textures, you got shader,
those are your three main components,
everything else on top of that lighting shadows, et cetera,
those are really just extensions of these things. Um
And given that we're not like doing any sort
of fancy global illumination or anything like that,
that tends to accelerate things quite a bit because we're working off
of already very well understood research and implementations at that point.
So,
um, whenever that's your bare minimum,
you can actually get things done pretty quick.
Uh The biggest problem that I have is how much time is available at my disposal.
So
given that sauce is an open source project,
I'm certainly not getting paid to work on it.
I had to figure out where to fit in time to work on that,
but we do actually have a separate team for Sauce.
Um Earth Mark is on that team and a couple of other people.
Um
So it's one of those things where we, we, we,
we have multiple people working on that project trying to get it done.
Uh Will there be large world support out of the box and sauce?
No, no, that's,
that's really more of a fruit engine problem than a sauce problem at this time.
Um For
engine would need some pretty deep changes to make that possible, such as uh
grid coordinate systems and stuff like that
and coordinate frames,
large worlds are not as simple as one might think.
And anyone who says to just use double precision floating point numbers,
I have news for you that is always the wrong and worst approach
just from a sheer memory perspective and also from a performance perspective.
And actually
um actually QB uh fake large world support is
a thing everywhere. Um Every Bethesda game
has quote unquote fake large worlds. Um
Andres newer um what do they call it? World partition. Yeah.
World partition is also fake
and you can't really see me doing the air quotes but fake large world support.
Um It's just generally how things are done. Um even second life
um has some pretty interesting hacks to get around the large world problem.
Uh For example,
so second life actually has multiple different concepts of coordinate space.
Um So
some common ones are gonna be like view or camera space,
then you're gonna have like world space and then you're gonna have like
local object space and you have like tangent space and things like that.
Second life adds a few extras.
On top of that,
we have this concept called agent space and uh region space as well to get
around the problem with floating po uh the problem of uh floating point precision.
So
lots of ways you can do things.
But uh pretty much at the end of the day,
uh large world support is always fake.
We're just using really clever tricks to get around uh different precision issues.
So
and yeah, uh just keeping the player at zero and moving the world around.
It's a pretty popular way of doing it.
Uh The other, the other one is coordinate frames which is what
like Bethesda, unreal and second life do.
But yeah, on that note,
uh I'm gonna pop out of here. Thanks again, everyone,
uh, for jumping in. Hopefully we'll get the, uh, recordings up
uh, sooner rather than later.
Of course, that depends on what prime's current workload is.
Anyways.
Thanks again, everyone.
Bye.