We'll give everyone a few minutes to join in.
Uh, there is a forum, uh, topic for questions, uh,
which I will just go ahead and post in the chat here.
There you go.
Uh, so if you have any questions,
you can go ahead and start getting them lined up there
and we'll probably get started proper
in just a few more minutes as people kind of settle in. Uh, just a quick note to Gareth.
It already has been, uh, should be on prime's, uh, website
right now. Um, he is, uh,
he, he's kind of handling a lot of that stuff. He's using some fancy pants.
A I, uh, thing to, uh,
transcribe that stuff and just as a note to anyone who is, uh,
just joining us first time or what have you.
Um, I'm only gonna be,
uh, answering questions from the specific thread in the chat
and in the general questions, uh, and info, uh, thread.
So please go to the thread listed, post your questions.
All that fun stuff.
All right.
Ok.
It's probably sufficient time to let people to kind
of come in and settle in and all that.
Uh, so let's see here, uh, there is one housekeeping, uh, subject to raise.
Um, I was going to touch a little bit on some of the age verification stuff,
but we're still working on,
uh, some policy measures for that. We're still discussing that internally.
Uh There is a discussion around it.
We'll hopefully have some more information to you guys eventually on that one.
So we're gonna just table that one and kick
the can for the time being uh until there's something
uh more uh interesting to say about it.
Uh Otherwise, jumping right into questions at this point,
um
Alex Tatum
Shark asks, when is Quest Pro Face tracking components going to be added?
Uh So we get full Quest Pro F
and including eyebrow and other things,
then mom makers can connect whatever string software VR desktop or a LVR to it.
So,
um there is in fact an internal branch of uh the unity
client that uh has uh Quest Pro Support utilizing uh A LXR.
Um This only works with the existing expression drivers
and things like that uh of that nature.
It doesn't add eyebrow tracking support or any of the more unique uh blend shapes
uh that Quest Pro itself has.
In order for us to do that,
we would probably be better off implementing something like
the uh unified expressions from vrcft.
Um Those sorts of things,
uh We're always open to have that conversation
with uh third parties like that as Well,
by the way, um,
right now it's the native side of this is gonna
be using a LXR just because it's the furthest one
along at this point in time and it's the easiest
one just to use straight up out of the box.
Um, but we may be looking at additional ways for you to, uh,
connect your headset with full eye, uh, and, and face tracking as well down the road.
Um This is not a tomorrow thing, this is not a next week thing which, uh, by the way, uh,
actually, that's one housekeeping item I forgot to mention.
Uh, most of the team is going to be, uh, away next week, uh, going to BLFC.
Uh, if you see us there, say hi, whatever.
Um, we do also have a, uh, a, uh, meet and greet at BLFC, uh,
next week as well for anyone who's attending.
Um, but this is like really more of a,
in the next month, maybe
sort of deal, um, to kind of get this all up and running.
Uh, we'll, we'll, we'll see how things work out.
There's definitely a little bit of extra work that needs to go into it,
namely just making the A LXR process.
Uh, a good bit more smoother than it currently is.
So you don't have to like, go through the trouble
launching a separate app and all that stuff.
All right, specs asks, um,
uh, actually Alex, um,
A LXR works with link and quest run times.
If you want without, then you're gonna need something like a lbr.
So just quick clarification on that one.
Specs asks how's things looking with the Lib VLC update?
What's the biggest hurdle you're facing so far there? Uh Time? Really?
That's the biggest thing that I'm facing uh on that front.
Um
So
pretty much just that um
there are, I do have a few updates on it though, just generally. Um
So seeking support is largely in a good state at this point.
I think I found like one edge case where
it doesn't do something that you would expect.
Uh So I need to go through and patch that up and work on that a little bit.
Um
Also, we have videos now pumping into a render texture as well.
Uh which also means that we can apply things like tone mapping
and whatnot to the video and different sampling methods as well.
Uh So you will have a little bit of extra controls that comes with this.
A lot of this is just stuff that we need
for the uh for the new version of uh LDLC that we're working with.
Uh since it does support like SDR and HDR content, that also means
uh our fun uh
that the funnest thing in the world color profiles
are coming back to bite us on that one.
So uh I'm currently uh sorting that one out as well.
Uh I don't know, uh when that's gonna ship, um,
give it some time, we'll, we'll sort it out.
Margo ask, what do you do at resonate or what general areas do you work in?
Oh, that's a fun one.
So originally I, a long time ago on a platform, far, far away,
uh that we dare not speak the name of,
uh I was originally brought in as a graphics programmer.
Um However, um on resonate, I not only work on graphics programming,
I do a little bit of general engine stuff here and
there pretty much whatever needs doing in the code base.
Uh And there isn't really
anyone poking at it or working on it or what have you
um Not to mention uh as a team and I of course,
participate in this as part of the team.
Um I kind of help out with feature uh
deciding uh like helping to figure out new features,
a bunch of stuff like that.
And I also work uh on the business team as well,
which you may have heard kind of being thrown around here and there uh along
with uh uh my other colleagues on the business team such as Chroma Canadian G,
uh Bob the good
uh via
Dante and uh Probable Prime as well.
Um So, you know,
I do a good few things here and there um rendering
is really kind of one of my core focuses though.
Um However, you're welcome to go through and ask questions and are other focus areas
in a limited capacity here,
we do have certain other office hours that we're trying to organize
where we would prefer certain other questions just generally be directed towards.
Uh Let's see, Gareth already answered your question as far as the transcripts.
Uh Slegers
Sledger.
I'm sorry, I
we've talked before and uh sorry if I messed up your name.
Um
I'm bad at that.
Um Is there a way to export non screenshot images like shared memes and
stuff without needing some sort of mod or is it just to just to,
to just screenshot them
to save them like that?
So if I recall correctly,
there's actually a component you can add that makes
it uh ex that can make an image exportable.
I I don't recall what the name of it off the top of my head is.
Uh but like if you import an image as a screenshot,
it basically gets this component uh immediately.
So you can just do a straight up export like you normally would for any screenshot.
Um uh Maybe someone in the chat can go through and uh better
uh be
better knows what that specific component is.
I think it's one of the metadata components.
Um But yeah, uh the, the there's a way to do it
without using a mod.
Uh Let's see, purple juice asks any plans with us in the future.
So I answered this one at the last one, the answer is no. The reason for no is
you didn't have a tendency
to make your shader
pretty bloated, depending on number of tiles. You want to support
a bunch of things like that.
Um This is probably not a right now thing for the current unity setup.
We're probably, I mean, once we have custom shader through sauce, of course,
you can build uh these out however you want to so you could of course add you
support
yourself. Um But right now the answer is no, sorry.
Uh let's see,
Gareth says uh well,
Gareth asks, uh last week, you mentioned albedo texture should be SR GB,
should the albedo color property be kept SR GB or set to linear?
Is there any specific reason to use one or the other?
I remember you mentioned the Emis of color property is important to keep it linear
if the color value exceeds 1.0 due to the questionable math of HDRSR GB.
So this is a really fun one.
Um And we're gonna work a little bit backwards here.
So um let's
let's define what HDRSR GB is. HDRSR GB is completely made up
intended for compatibility only and do not expect it to uh continue to work.
We will be removing some legacy color profiles and stuff like that,
that you're not supposed to really be using today
anyways at some point that includes Sr GB alpha,
by the way, for anyone who has been hacking together content with that.
Originally, we had a block on it, we removed it for testing purposes.
We forgot to put the block back in, expect that to change very soon.
Um
So
that's pretty much what HDRSR GB is.
It's just a way to kind of tweak content, uh, like HDR colors from, um,
pre from before, from the before times
to look about or close to what they used to look like.
It doesn't work uh 1 to 1 all the time,
but it gets within the ballpark. Now, let's answer the rest of your question here.
Um
Your albedo color properties should always be aligned with the
specific color space of the texture you're working with.
There's a lot of reasons for this
uh using a linear
value
with a nonlinear value is not going to result in the uh is not
going to give you the result you're expecting um a lot of the time.
Uh You generally want to keep uh all of your values in the same uh color space.
Basically, that's, that's what you want to do as a general rule.
Yes, we allow you to kind of deviate from that.
So if you have any specific stylistic choices that you're going for, you can do this.
However,
it's generally recommended that you do not do this
and the same applies for em missives as well.
Uh em missives you
can like go through and apply NSR GB uh color profile too.
But don't expect it once you get past uh 1.0
in terms of intensity in any channel to really
behave quite as you as you would expect.
Uh because it does get exponential from there when it comes down to
um the actual color intensities and stuff like that.
Um This is why for HDR colors and stuff like that, we,
we generally try to push people towards linear
uh because linear will generally have a much
more predictable and well as the name implies,
linear result, once you start getting into higher intensity ranges.
Uh
but yeah,
uh it just really kind of comes down to your specific stylistic
choices in terms of why to use one or the other.
Um
You can use a linear albedo,
it's not really recommended, but you can do that.
And if you're using an HDR albedo,
you're using linear anyways and you should probably be
making sure you bake in your uh your,
your gamma curve as well with that as well.
So yeah,
uh
Jink asks what could be done to improve text rendering if anything it
feels not so crisp compared to what I see in other VR games,
even at high
res,
uh you can go through and mess with the, the text atlases.
Uh We do have some different components and uh assets that drive text rendering.
Uh you can, you can tweak and tune those as you need. Um
I forget the specific values that you can go through
and mess with off the top of my head.
I don't really have those up uh in front of me right now.
Uh But it's something you can mess with.
Uh some, some values will result in CRISPR text at certain distances,
uh Others will result in blur your text at other distances.
Um And some will even result in weird m mapping
issues depending on the specific setting that you set.
Um
uh It's really just a tweaking and tuning process to get to your specific uh goals.
Uh With regards to that,
we could probably apply some additional tweaks to some of our system.
UIs if you see any areas that are particularly blurry or hard to read
uh at different distances, uh of course,
relative to the resolution of your display,
uh please file a github
so we can look into it.
All right,
Gareth asks currently the unlit map cap
shader and the reflection shader are both turning
bright pink when a normal normal map is placed in the normal map field.
Do you think that these bugs are in any way related
related since they both uh have to do with normal maps?
Clue on what the timeline might look like on fixing these.
Uh First, if there isn't already file a github,
we're always gonna tell you to file a github.
Um We're gonna need you to,
we're gonna need you to provide as much details
as you can including screenshots of the inspector,
uh, particularly the waiting for apply field on the material
because if that's set to true,
then that means that there's probably an asset variant somewhere
that uh just stripe doesn't exist and we need to figure out why it doesn't exist.
Um The second part, uh,
neural maps wouldn't have really much to do with this directly.
Um It could be potentially one of our shader just failed to compile and we missed it,
which I mean, we're usually pretty on top of that sort of thing.
So I'm not entirely sure that that would be the case.
I can definitely give those two specifically a look.
Um And uh oh, reports have been filed for both then, uh go ahead and just,
I don't know, link them somewhere so I can take a look at them,
uh maybe and the uh rendering discussion thread,
uh
and uh the uh general form.
Um So I can at least go through and take a look. But, yeah.
All right, Tony Cat,
um, asks, uh last time I asked apparently on Chrome's office hours,
uh about FX A A being used in game.
And if the team had tried using any of the U I elements with a low resolution headset,
Moors
got the mod to disable FX A A working for it recently
and the readability increased a lot.
Would FX A a being disabled on inspector slash text fields be something to look into
there is also now a G issue about this too. Now.
Um
So FX A A is a fun one and that like
we can't just selectively apply it
and generally, the better way to go is finding a good general use case anti
aas
uh technique.
Um FX A A,
I'm gonna be complete and total completely and totally honest with you guys.
It sucks.
It was great at the time when it came out,
It has been
over a decade since it came out.
We have had better uh techniques uh come, come and go over the years.
And I think it's probably not a bad idea to start looking into utilizing
some of those techniques. Uh We do have CTA A and the client,
however, it's a bit dated as well.
Um And um I have heard reports of some ghosting
behavior with it whenever you look around and stuff like that
or whenever you're moving around.
Uh So there, I do have some concerns about invoking uh nausea
with some individuals with that.
So it is something for us to consider if we're going to toggle it on uh by default.
Uh But the option is still there to go through and enable it.
I don't have the flag off the top of my head.
I think it's like dash CTA A and your launch arguments.
Um
But uh definitely it is something I want to look at uh
particularly with FSR being a thing and actually looking pretty darn good.
Um And also being portable from one GP U to the next GP U.
Uh you can even have it working on Intel GP us. Um Surprisingly enough.
Um So it is something I want to look at
uh
making FX A a conditional is probable for,
for certain kinds of content is not gonna happen.
Instead I want to go through and have a more general uh a more generalized uh a,
a solution that just is better.
So, yeah, um We'll look at that more at some point or another one if I have time. Um
That being said, um if, if disabling FX A A is something you'd like
uh file a feature request if it hasn't already been filed
and we can look at adding an uh a launch argument to do that.
Laois
asks, I've noticed assets. Um No, sorry chat moved up on me a little bit.
Uh I've noticed assets will stop loading from spawning items to
not loading in the rest of the world's or avatars.
It seems random when it happens but does happen every time I've logged in
when it happens, I've seen that the gather job jobs tab
has just stopped altogether. Is there any workaround or fix to this?
Aside from restarting the game? It's not the best when you are hosting worlds.
Uh And this happens first file a buck, take it to the
github. Uh
This is the first I'm actually hearing of this.
Um, so there's a good chance that there's, there's a bug somewhere. Uh, just go to the
github file one so we can, so we can look into it,
triage it and put it on someone's plate.
Sorry that I can't help you anymore on that one.
I just don't have enough information.
Specs. Asks. Speaking of HDR, I know it's not a simple switch.
What all might be involved in giving resonant HDR support.
There's plenty of HDR Motors now and it seems
like HDR headsets may not be far from commonplace.
There's a few things that are in the way of that.
Unity is a big one
as is the theme where it comes down to things like this. Um
And pretty much just a lack of consumer
focused HDR headsets is the other side of it. I mean, like, let's see,
PSVR two is an HDR headset but
the, the PSVR two
MOD or whatever it is. Um That, that one guy is working on that's not out yet.
Last I checked. Um And additionally, um,
we don't have a PSVR 22 DEV kit.
So, hey, if anyone finds it falling off the back of a truck, make sure to let me know,
actually, please don't do that.
We don't want to get, we don't want to get in trouble.
Um
So,
you know, it, it, it's,
it's a combination of availability and unity just doesn't really support this.
Um, for headsets in particular and for monitors, it's kind of spotty
uh just overall. Um
So uh
we're, you're probably waiting for sauce at minimum for the monitor side of things.
And uh
yeah, chances are at maximum you're probably waiting another
3 to 6 months after that for it to actually
properly be supported in the H MD that we support
uh Artemis
Fowl 4465 asks, kind of wondering if Vulcan may be added in the future?
Yes, that's gonna come with sauce. Uh So just as a kind of
idea of where Vulcan is gonna be utilized with sauce, uh Linux
and Windows is gonna be the areas where we're gonna be using Vulcan
uh whenever we get to supporting uh stand alone and uh Android again,
at some point down the road, it'll also be utilized there as well.
Let's see where that one as answered.
Oh, all right. Thank you. Whoever did that.
All right,
Copia asks,
I noticed that the Zixi Tune material looks a lot
like the PBS metallic material outside of a reflection probe,
uh looks rough and a bit reflective. To me.
It seems to be something to do with the reflectivity slider.
But for me, it doesn't actually do anything any way to get around that with Zixi.
I'm not
sure what you're really
referring to here.
Um And it may actually be just a bug with Zixi which
don't look at us when it comes down to bugs for Zixi
uh we actually want to replace that shader,
um, with one of our own fortune shading.
Um,
though,
when you say it doesn't actually do anything,
can you elaborate a little bit more? Like does not changing any property,
like change anything?
Like if you were when it gets in the state and you change the albedo texture,
um, does the shader Act,
does the material actually update when you attempt to do this
and we'll just uh give Sanna
Topia a little bit of time to respond.
So it doesn't change like no property like
it doesn't matter which property you change,
the material just does not update at all.
File get hub.
Um So we can triage that. Thank you
cause that's, that's, that's a bug that should not be happening at all.
OK.
So purple juice uh asks I noticed when using blend shapes is, was some
like the Fernell
shader, it doesn't update with the model shape. Is there, is there a way around it?
And if so how intense would it be on performance? Um
The
fell shader
should be updating.
I mean,
can you describe how it's not updating?
Like is the geometry not updating with the fernel shader?
Does the fernell effect just seem to
not really
look correct on it? Like
I need some more information on this one.
OK.
So geometry updates just to make sure
I'm understanding this correctly geometry updates,
but the Fornell effect looks incorrect based upon the geometry.
Am I understanding that? Right?
Ok, thank you.
Um
I would uh just, just as a sanity check,
um I would generally always just double check and make sure
that the normals have been properly calculated for the uh for the um
blend shapes. Uh because I know that like some tool kits
will just give you bad normals or just won't
update the normals for a given blend shape.
Uh whenever you apply them, certain formats do that as well. Don't ask me why.
That's a thing.
It just is, unfortunately.
Um
And we just go off of what normals are included with uh the model itself. Um
But if the fernell material even on a known good
uh model is not uh updating properly uh
with relation to the specific normals being supplied,
uh then that could be a very strange shade or bug.
Uh In which case, I'd be very interested to see a github
on that if you don't mind.
All right,
shadow X uh asks you've shown off fast fourier transform nodes
and components for audio sources in the old platform's discord.
Is that still a thing? And will we see it in a building time soon? It
is not currently a thing. However, um
we are waiting on collection support uh for that for proto flux.
Um just because it's gonna make our lives a lot easier,
although we do have a lot of mechanisms
to upgrade nodes, upgrade entire
like
entire um
node hierarchies, in fact, like entire graphs and other cool stuff like that.
Uh We do want to save ourselves a lot.
Uh uh the trouble of having to use that because anytime we use that,
it's kind of one of those weird toss ups of, are we really, really,
really sure that we understand the context of what the person was doing
for this specific use case?
That's
I'm gonna be honest on any platform that does this,
this is more often than not a bit of a coin
flip and we don't really like dealing with those odds.
So, um yeah,
um
the answer is
you're not gonna see it in any form that has been
promoted or displayed at any previous platform or any other platform.
Um We're just gonna wait until we have collection
support before we really pursue this in earnest.
And that's probably gonna be something different.
Let's see. Uh Ozy asks how are things
with the render transform override crash? If you looked into it?
I added a bit perhaps too much to the
github issue. And at this point, I'm massively curious
what in the uni pipe of things is causing it. Exactly.
We're not really 100% sure.
Um And uh I believe we're still trying to
find a specific and consistent uh reproduction case.
We there, there has been one found or if you just duplicate a specific object,
a lot of times you're bound to run into it
another person found that if you just have a bunch of avatars that use that
and just start going through and quipping them at random and bouncing between them.
That's another easy way to, to cause the crash.
However, uh boiling it down has been difficult.
Um And as a result, we're still waiting for more re reproducible cases on this.
Uh anyone who is watching that specific
github issue,
uh Please provide all of your logs
like not just the crash log from unity but also
the actual blog of the session that crashed itself.
Uh So we can go through this and better compile.
You know,
generally some sort find some sort of correlation here uh
in terms of what's going on under the hood.
OK. All right. So file corrupted asks, not sure if you can answer this.
But is it possible to potentially add a readable flag to render textures so that they
could have their pixel data sampled or is
this something that's not not possible with unity?
Uh Last I checked you can get data out of a render texture. However,
here's the, here's the problem
with uh
what we call texture read backs, which is kind of what you're asking for here.
Um
Whenever we go through and upload a texture,
um
that's easy. That's super easy.
Like I if it well and when I say uploaded texture, I mean, upload texture to the GP U.
It's super easy to read back that texture because you just,
instead of deleting it from system memory, you just keep it there,
you don't really need to do anything to read it. You just keep it in memory.
There's added memory bloat that comes with that. Of course,
we can just go ahead and read it.
Rendered textures suck for. This
sucks for a lot of reasons. Um It's
basically once you render something on the GP GP U,
you then have to send it across the bus over to the CPU side of things.
Um And if you have enough of these,
they are extremely good at crippling performance.
Um If we ever did do this,
we would have to be under some tight restrictions um
If we made this like an officially supported feature.
Um So I'm, I'm generally going to lean more towards
we, we, we don't do this. Not right now
um With, regardless of if it's a unity feature or not. So,
yeah.
Oh
ju just pushed up the video
and just because Gareth's question just popped up there and this is a very fun one.
unity. That's why
uh Gareth asks,
is there a specific reason why reflection probes cannot be rotated
and have to be aligned uh to a global axis?
It's just literally unity.
Let's see what we got here. If it'll load,
it will maybe load,
I'll look at that later.
OK.
Uh More questions. All right.
I'm assuming that this is in relation to the render transform override stuff.
Um Margo asks if I had it on my avatar, would it crash?
Just me or everyone in the session
and follow up to that is how often does it happen?
This is the
fun one that we're still trying to understand and figure out.
Um So
it will
sometimes and we're not sure whether it's RT E OS specifically
or RT Os making something else worse.
We're still, we're still trying to understand this bug.
Um
But the specific crash in, in question seems to happen randomly
so far,
there appears to be some evidence showing that it happens more often with RT OS.
However, we have a potentially unrelated c crash
that happens whenever there are no RT Os anywhere in the world.
Um So this is still a matter that we're investigating,
it's one that we're still collecting information on.
Um And one that we're just trying to grasp like what, what specifically
is making this work, trying to figure out like what the statistical side of this is.
Um Do Rt Os really make this work? And so far there's a lot of stuff pointing to? Yes.
Um Is it something that is actually completely unrelated to RT
Os and RT Os is just exposing a bigger problem?
So, unfortunately, I don't have a direct
it is this thing
do not do this thing
because we're still trying to figure out if it
is in fact that thing or if it's something else
double sticks as uh following up on Garrett's question, which was,
is there a specific reason why reflection probes cannot be rotated?
Uh I mean,
honestly, it's probably a technical limitation from when unity first did them.
Um
And unity isn't really updating their deferred renderer anymore.
They want, they want people off the deferred renderer,
they want people onto their script
render pipeline,
which we did look into upgrading to
before anyone asks and it, it, it's not pretty.
Um We would spend about the same amount of time of getting sauce to
the halfway to potentially even the 90% point of completion.
So I'd rather we spend our time doing that instead.
Uh
Sophia
asks any updates on updating the Vrik settings to, to
perform better for full body users, hip rotation, et cetera.
Uh No, nothing right now.
Um I will say that IK is generally a thing that
uh fruits would actually like to tackle himself right now.
At least that's what it seems like.
So, pretty much,
you know, that's one of those things where
it's gonna have to wait until
um he starts working on that,
which hopefully whi which he'll probably talk about whenever
he's a bit closer to getting that out there.
All right, Gareth uh asks
since you mentioned that the legacy color spaces such as
Sr GB alpha will be removed in future updates,
will there be attempts
to bulk convert content to look roughly the
same after that legacy conversion is dropped.
If
there are, if there are, if they are made with it,
will they be destructive or something that can be undone?
I understand it won't be perfect.
But there are a few specific cases, I'm curious about
like see content that used over driven emission which was
previously SR GB for now curves being adjusted to be closer
to their original incarnation,
SR GB alpha values and old textures fog volume generated the fog volume shader.
So
here's the fun thing about this stuff. Um We generally avoid going through and um
destroying original content and uh trying to change the um intent
of the content without really having really any knowledge about that.
Uh We already do automatic conversions
like that's already a thing we do.
The moment you save that piece of content, that conversion is locked in
just just so you know how our content upgrade systems uh systems work.
The moment you load that, the moment it gets converted, the moment you save that
it is forever converted at that point in the copy that you save,
you can still keep the original though with
all the original values and stuff like that.
So if we ever did a little bit of an oopsy and you still have the original,
just spawn it out
and resave it
pretty much
or rather save a new copy of it, I should say.
Um
certain things just for,
for the matter of we don't want to support it
and it's probably not a good idea to support bandaids.
Uh Long term.
Uh Eventually we need to off ramp and completely remove them.
Um Our bulk content conversion process is largely fueled
by you guys whenever you go through spawn something and
resave it.
Um
So that's pretty much what we have to live with at this point.
Um in terms of any sort of bulk content uh conversion stuff. Um
So yeah, that's, that's just kind of what it is at this point.
Um Sr GB values and old textures, fun thing about color profiles.
They do not go through and overwrite anything in the texture itself.
Uh It just tells the GP U, hey, I need you to sample this like this.
So that's implicitly non destructive
uh with the sole exception of uh HDR textures uh where we have
to bake some information and because those don't really have a color profile,
so to speak.
Um
and certain values and stuff like that, we have to go through and convert
uh on the CPU just by nature of how they work. We, we can't just,
you know, we can't just go through and say, all right. Well,
you know,
we'll just reinterpret this somewhere else in the pipeline and keep
the original value we have to go through and do that.
Um
So yeah, it's, it's, it, it's a complicated process. Um However, in the future,
um it shouldn't really matter, basically,
um when the future is in terms of removing these things,
um I'm not really 100% sure right now, it could be a year from now,
could be a couple of years from now.
However,
the process of removing it as for any kind of platform
of this nature is not as simple of one day,
it's there the next day, it's not,
it's really more of a progressive off ramping process and uh making sure that we are
making, well, just simply making sure that, uh you know,
things aren't totally broken.
Um And thankfully, things weren't totally broken,
just a few things were broken uh with color management.
Um But these, these are still things that we can ultimately fix at the end of the day
uh today. So before we really start disabling color profiles and stuff like that,
uh some one, at least one of which is going to be disabled, hell or high waters.
Uh just because you shouldn't be using it in the first place.
Um
You know, or, or we want to make sure that, uh you know,
content is generally looking fine for the most part.
In that worst case, you just spun out a new copy of the original and resave it.
If there's any sort of bugs that we need to address.
NAMI
asks, I've noticed a major performance difference. Uh
Ssaov via modding for some people like ambient inclusion is headache,
inducing in resonate
is it, it
is different in each eye and flickr sometimes. Is there any intention
we'll be getting an option to turn it off or have
it just off for everyone before the new rendering engine,
we're probably just gonna go through and replace the SSAO honestly,
like the specific package that we're using is something called
amplify inclusion and it's also been tweaked a little bit.
So it doesn't over darken
nearly as much as it used to.
Um
the different in each eye thing. That's a new one.
That shouldn't be the case.
Uh But regardless like we, we do, we do want to replace it.
Um just because we're going to have it in the new rendering engine.
And the best you can really do is
wait until they have post processing volumes and stuff like that.
So you can adjust it
um or a new settings page.
So you can just go through and, you know,
tweak things as needed for your specific uh needs.
Um
I'm not sure that we'll add an option to disable it right now.
You may still need to continue to use a mod.
Um
At minimum,
you're waiting for the settings free work uh for
us to really add much of any graphics options directly
in the U I Dionys uh asks what are currently
the largest engine side and user site performance bottlenecks.
Uh Well, that's a little bit all over the place
and it really depends on the specific uh use case uh some cases we are GP U bound,
but those aren't super, super common.
Um You can get us, you can get the uh app to a GP U bound state.
Um Just by throwing uh enough stuff at it. Really,
there's a few worlds that can do that pretty easily.
Uh I've seen a couple of nature worlds that try to do it with a whole large scale thing
that uh can become GP U bound. Um
And then some of the CPU bound stuff,
it just really depends on how many objects you have in a world that are interactive
or making use of like a ton of components or proto flux or what have you.
Uh And by the way, just so everyone knows, um
if you have a lot of things that are making changes to that,
like a lot of things that need to be synchronized
um which includes like state generally for the world,
you're probably going to eventually start hitting
some performance bottlenecks around that as well.
Um It's not just
proto
flux is better or components are better in that regard.
Both can be just as bad as the other.
So heads up on that one, please go through and balance things accordingly.
Uh But yeah,
it's uh I don't really have a straightforward answer uh in terms
of the largest engine side and user side uh performance bottlenecks.
It's just a matter of um it just really depends on what you want to do.
We do have some mitigations in mind.
However, for different cases along those lines,
for example,
one thing I want to work on is just better
occlusion culling overall uh for the render side of it
uh along with uh texture streaming.
Uh So we can stream textures in and out of uh GP
U memory as needed because I do know of a few worlds
that will just bring an eight gigabyte
GP U to its knees.
So that's something that we should probably be fixing as well
or at least adding some additional tooling to make it.
So it doesn't uh totally destroy uh GP U performance like that
R MS F
4465. Ask wondering how the links build is coming along.
Um
I just really haven't had time to really delve into it. That's
pretty much
the best I can give you right now.
Sorry, Purple Resonance Resonance Fox asks will,
will there be smaller optional tutorial worlds for things like simple flex stuffs?
Um
That's not really a good question for this office hours. I'm afraid. Um
If you want my opinion, I would love to see more smaller
uh tutorial worlds here and there that teaches people how to do things.
I would be more than happy to contribute some stuff on
how to make sure your stuff is performing as good as it can on a, from a GP U standpoint.
But I feel like that's probably more of like a content team question. Uh really
something more along those lines.
Uh Maybe chroma can probably uh chime in on that one somewhere.
Uh If he's still listening in that is
uh let's see here. Lux asks
uh the current unity rendering engine makes heavy use of render
Q and its own set of complex rules for object priority
and such to determine how things are rendered in in the scene,
how much technical debt slash limitations this has incurred going forward,
considering the current rendering engine will eventually be replaced,
will sauce have to conform to unity standards for this or will there be
some sort of like sea behavior or some complex conversion of some sort?
So render cues and stuff like that
and object priority, I mean, like
a lot of what unity is doing isn't really all that complicated
or different from what other rendering engines would need to do anyways.
So if anything, we probably just kind of do it as unity does for that specific uh one
just because it makes a good deal of sense,
we're gonna have to have systems like that anyways in sauce.
So may as well just
you know,
do a behavioral transplant if that makes sense where
it comes down to render cues and such.
Um
for other things, if, if, if we need to,
we may have c if there's something doesn't quite align,
we may just do like a legacy conversion or something like that much
like what we do with a lot of the color management stuff.
Void Paul asks,
what's the vision for creating an asset pipeline where game DEV
can happen more seamlessly with content creation software similar to unity,
Unreal and Goode
where I can edit a mesh and blender, overwrite that mesh and the file structure
and it gets updated
automatically
in every scene it's referenced.
There's,
that's a very complicated question because there's
a lot of extra questions in there.
Um
So
if what you're asking for is are there any plans to have like say a sort of project
system where you can just do this and just
have it like automatically sync uh with a world
uh based upon what you're doing locally or what have you.
I would say that
there are ideas floating about for that.
It's not anything that's really been committed to record in terms of plans.
There's just been a couple of ideas here and there and that's about it.
Um
And there's a million ways to really achieve those ideas.
Uh A lot of very specific ins and outs depending
on the assets and how those need to work.
For example,
light mapping is gonna be a very interesting one once we have built in light baking
because we need to,
well,
you need to go through and bake that light map uh and your
client and then have that synchronized with everyone else as one example.
Uh And then we have, of course,
the files that are not generative that you're providing such as textures
and as a and models as you kind of describe here,
which we then need to figure out how to synchronize with everyone else as well.
Uh And a sort of project style structure which I mean,
obviously you can sync any local file to anyone else
um just by bringing it into the world.
So how do we make that model actually work uh from
a project perspective and making that work for worlds and whatnot?
Then the other side of this is um you have multiple worlds.
How do I go through and make sure that an object is properly synchronized
uh whenever I change it in one world across many worlds. Um
And that's a much bigger conversation.
Uh It's definitely one where I think some sort of prefab system
would be useful where you can just update a prefab in place.
Uh However, how we actually achieve that is technically nontrivial
uh just by nature of how resonate works and fruits engine as well.
So
lots of things to unpack there. Um
This isn't a, we're not going to do it. It's a,
it is a complex issue that we're gonna have to basically part out
and figure out how we're going to handle one piece at a time
over time as well.
Uh It is 4 19 pacific time.
Um
And one minute we're gonna cut off questions.
Um
And pretty much what's left is what I'm going to get through this meeting.
Anything else, please save it for my next office hours,
which will be in two weeks time.
Anyways, let's get back to it.
Dionys.
Uh uh asks uh adding on,
would there be any U I to adjust any graphics related stuff on the settings tab
to soften any graphics related performance issues on,
on an individual clients end.
Yes.
In time,
uh we do need to work on better tooling in terms of how you interact with that though.
That's the main thing that we need to figure out. Like what is
a quality setting? For example, like how do we define what a quality setting is?
Uh Do we just go through and say, OK, I only want
this
as my maximum texture resolution and make that a client
site setting or do we have different tiers of quality settings
that a content creator can go through and fill in?
And we just provide some what we believe to be
sane defaults for the content creator that they can then override
uh which we already do in several other places.
Um
But definitely like having quality settings um in uh
in the uh like some render settings pane somewhere
at some point is definitely something we want to do.
Uh Gareth asks just as a clar
clarification question,
will band-aid features such as the Sr GB alpha color profile be totally removed.
Rending old assets, impossible to upgrade. Will they just be made inaccessible?
So future content can be made with them.
But old content content upgrading is still uh cannot be made with, I'm sorry,
cannot be made with them.
But old content upgrading is still supported more specifically.
Would it be a good idea
to go through old worlds and manually tweak things to try and achieve parody
with previous iteration now or wait for a potential upgrade process that will,
that will do it automatically.
I'm gonna answer this one and reverse just because
you did touch on a very important point.
Always tweak your content after something like cm comes out.
Cam's job is not to go through like our content
upgrade process is to get as close as we can
note that I said as close as we can,
we are never going to be able to get 1 to 1 with what you
the creator
of that piece of content uh intended.
We'll never be able to get 1 to 1 but we can get close.
Um So anytime you have something like color management to come about,
you need to go in and you need to tweak your content, you need to go through and
you know, look at it and decide.
Ok, well, what,
what needs to happen here for my original intent to be communicated visually here?
That's just how it is.
Um
So
this goes to everyone,
always go through and tweak your content whenever something,
something major like color management lands.
Uh Otherwise, I mean,
there isn't a perfect content upgrade process. There never will be.
Uh
and uh whenever we start going through and
eventually streamlining pipelines and however many years time
your content may not ever look correct. Uh Once we start removing certain things,
now, of course, we are going to always be conservative with what we remove,
we have to be.
Um
But definitely locking out, for example, Sr GB alpha.
Uh that's something that we can do.
We can actually do it today and we do have mechanisms to do this
today
to prevent you from creating new content.
And then from there,
it's just more a conversation of how long of a grace
period do we give you before we bake that in?
And now it's always going to be that way,
whether you tweak it or whether you want to tweak it or not.
These are the kind of conversations in consideration that
we have to put into stuff like this.
Uh maintaining large chunks of legacy code is never a fun experience
and oftentimes leads to bloat in other places that
you really don't want there to be bloat in.
Um But it's not like a next month conversation.
It is a at what point over the next few years conversation.
OK. So that's Garrett's question, scroll down.
And by the way, um we are not accepting any new questions past 4 20 pm pacific time.
Uh So if I don't get to your question, uh this time,
we can turn it into a housekeeping matter for the next office hours in two weeks.
All right,
dog G
says, uh well, ask is different rendering api such as Vulcan or direct X 12,
et cetera planned down the line or is this game
intending to intending on staying on D 3d 11?
Uh
Vulcan is gonna be our primary once sauce ships
um
metal for any apple platforms that we support,
should we need to support them at any point in time?
Such as for example, for the Vision Pro or a desktop Mac client.
Uh Those are really the only two with the direction sauces going,
we could theoretically support more
and we don't really intend to do anything crazy that would throw that support off.
So if, for example, we did some testing, we found that Direct X 12 or you know,
direct X 13, whenever that eventually ships
uh just performs miles better,
then Vulcan,
we could look into doing that provided uh W GP U or sort of graphics api layer uh
traction layer uh supports it as well.
And uh just, just a quick note, Alex from Alaska is
mostly correct in terms of kind of how the upgrade system works. Uh We do have like
we do kind of like whenever we apply an upgrade, we do kind of have like a list of OK.
If it's under this version, do this, if it's under that version, do that.
If it's exactly equal,
equal to this version,
then do this and so on.
So we do have a good bit of logic in
place just to make sure that upgrades can be generational
on content.
And we are able to respect the specific content generations that we are upgrading.
It's more for bigger things where we have to
tread carefully and tread lightly when it comes down to
like how we go through and disable certain kinds of content
and make sure you can't create new content with it.
So we have enough time to decide what we're gonna do with the old content.
So just a quick note, J just a bit of a note on that one.
All right, I'm going to Oh, we only really.
Oh Yeah. No. OK. Good. That's not actually a question. It just got me there.
All right. Um Well, we uh
have four minutes left.
Um
I'm just gonna go through some discussion at this point
actually,
since Garrett did go through and provide one and we have a few minutes left,
one final question.
If you feel like answering it,
what stops the shader from reading a texture to
determine the blend mode of a given material?
Uh I
mean, I'm just gonna
tell you it's, it's a lack of metadata
um like that,
that's pretty much why we can't just straight up read
a texture to determine what the appropriate blood mode is.
Uh
You could go through and within the we could go
through and like have some extra information on a texture.
But I mean, really just do this at the material level.
It makes way more sense that way.
There's a reason why we created that
funny little abstraction around shader for you as an entire industry
just do that.
Like it's actually
there, there's a fun little bit of information there as far as why you can't just
do it through a texture.
Um So blend modes are defined um kind of at the pipeline level.
In other words,
whenever I actually go through it and tell the GP U how I want something rendered,
I need to supply the blend mode entirely on the CPU
and
tell the driver to encode this and send it to the GP U for rendering.
Um So
given that I have to do this, I technically,
if I if I'm doing this uh efficiently,
I don't have access to the textures attributes,
I can't really say uh on a per pixel level,
what the blend mode should be because that all has
to be constructed at the material or pipeline level.
In this particular case,
um for the entire
object that's for the entire surface that's about to be rendered.
So it's not really practical to really store this stuff
inside of a texture and just have like OK,
you get to be rendered this way and you get to be
rendered this way and you each get to be blended this way.
Now there is
there has been on and off discussion around
having programmable blending at the per pixel level. Um
So it's not a new question by any means, especially at the industry level,
but it is uh something that is nontrivial at a silicon level.
Uh There is some limited ability to do this,
but it's very sparse in terms of what you can do.
It's not like say a full on shader necessarily. So
yeah, it's, it's complicated basically.
Yes. Void Paul.
It is,
it's using the piece wise transfer function.
Um
P
A 2.2 is just an approximation,
but we do actually apply the full piece wise transformation.
Uh for SR GB alpha
actually come to think that I think we actually do
have to do the inverse to make it look,
I'd have to go back through my code,
but I'm pretty sure we have to do the
inverse uh transform to really make it look correct.
But uh
yeah, otherwise alpha blending is completely linear.
But yeah. All right, we are officially at time, we actually managed to
get everyone's questions answered and with uh with the bonus question too. Um So
thanks everyone for coming about.
Uh I'll go through and shoot off the uh recording to
prime so he can get that up on his website and,
and nice and transcribe for you guys.
All right. Thanks everyone.