We give everyone just a little bit of time to get in here.
Am I coming through? All right, is my audio good.
Ok, cool. As usual, wait until about five o'clock, uh, five o'clock.
Uh, well, five past the hour rather. Um, so, uh, people have time to get in
and we'll get started then, uh, in the meantime, uh, please use the following. Um,
I just put post it into the chat.
Please use the following thread to post questions and all that good stuff.
Let's see,
I guess while we wait, how was everyone's, uh, New Year's and holidays?
Mhm. Just a few more minutes left and we'll go ahead and get moving.
If you have any questions, please don't wait for the off for, for,
for me to get started.
Uh, answers will be, uh,
questions will be answered and the order that they're received.
So keep, keep posting up, posting them up in the foreign thread
as a reminder. This isn't just for rendering and stuff like that.
This is, this applies to all areas of focus that I work in,
which helps to include business and just engineering in general. So,
all right, we'll go ahead and get started.
Uh Welcome everyone to my office hours. Um Got a few questions already.
Uh But before we get into that,
I'll go ahead and give a couple of updates on what's going on on my end.
Um S
development has generally been prioritized at this point and is
moving around at a pretty decent uh pace right now.
Uh No promises on being able to get this out before the fall of this year.
Um
But it's, it's, it's moving along pretty well. Um
Right now I'm working on the whole resource
streaming and resource management side of things.
Uh What we want to do
is make it so that uh resources can generally be streamed in and out as needed.
Uh So if you have a texture on a surface that's really far away,
there's no point in keeping the full texture loaded,
we'll just go through and only keep the um
the uh highest MT map uh That's necessary and just the
highest min map that's necessary loaded off in the distance.
Uh Let's see here, other things.
Uh Some LIB VLC updates as well, got audio buffers, more or less working from that.
So now we actually have specialized audio piping through.
There's still a few bugs remaining with that one, namely for some reason.
And I haven't figured out if this is just due
to some limitation in the newer version of VLC,
I need to go through and ask their uh support people
about this since we do actually have a license to,
to it.
Um
It will only really load one video and that's about it.
So I need to go through and figure that one out.
Um Make sure it's not something uh weird I'm doing on my end that prevents that.
Um
What else is going on?
Uh fruits recently decided to take on some of the 3d texture stuff.
There's some more complicated things going on uh with the uh adding
color profiles to that.
And I just,
I'm not really sure really what's going on uh with loading with
a failure to load the static uh 3d texture components for that.
Um So he's taking that on uh looks like he's doing that at the moment.
So hopefully we can get that fix pushed out sooner than later.
I will note to everyone that uh if you set a 3D texture to SR GB,
it is going to load it into a floating point buffer.
Uh
There's just not nothing we can really do about that unity.
Unfortunately, does not expose nonlinear 3D textures. We kind of have to
do our own uh transformation math on that. Uh
which is pretty unfortunate but it is what it is uh with sauce.
This won't really be as much of a problem we'll just
go through and apply the correct uh color profile on that.
Uh Once we get there,
uh also looking into some media engine stuff for sauce as well.
We're probably gonna just go through and have all the
media playback and stuff like that happen directly through sauce.
Uh It may not actually be LVLC.
Uh We may actually end up just straight up uh using FFN peg.
Uh But we'll see about that.
Hard to say right now.
I just need to go through and figure a few logistical things out with that.
Uh Next step on ne next steps on the sauce
stuff is going to be things like getting mesh shader
emulation working since that's a pretty important part of sauce
that we need to figure out before we really get into
making something look pretty.
Uh This is largely for those of you who are into custom shades and stuff like that.
Uh This is largely to make it so that you can emit new geometry,
tessellate geometry and things like that without really worrying so much about
uh the
de the details in between
once we actually have full mesh shader support up and running,
which right now W GP U doesn't quite support, it's a bit too new of a feature for them.
Um
We'll end up uh enabling task shader and whatnot as well.
But right now, the main goal is just to get a,
a compute shader based
uh mesh shader emulation system going for that.
We've also recently started talking about what even
is a shader as it pertains to sauce.
Is it just a WGSL file? Is it
something that we are going to have to create like some
sort of interpreter for proto flux for that sort of thing?
Uh No, nothing really concrete yet for that.
Um But more information will be coming as a sauce uh continues to
be developed. Uh Generally getting an idea of how sauce is going to release as well.
Um It's definitely gonna be uh open,
it's definitely gonna be open source before we
go through and integrate it with resonate.
This is for a lot of reasons just to get some additional eyes on it.
See if anyone wants to help volunteer for it, that sort of thing.
So yeah, that's kind of where we're going right now.
Hopefully we'll get something out before we really
start getting into like the real meat of
what exactly it needs to be for resonate.
So that way people can start tinkering with it and stuff like that.
What that basically means is you're probably not gonna get any sort of fancy pants,
clustered shading or tiled tiled shading or anything like that yet,
once the initial release comes out,
but you will be able to mess around with the resource management features,
you'll still be able to draw things bind a shaker, all the important thing,
basic important things that a renderer needs to do basically.
So that's where we're going right now with sauce. Um
I'll have more information on that sooner rather than later. I hope so. Yep.
Uh We'll jump right into questions now.
Uh Let's see here, Klein Low asks the person developing a mod, uh,
to support the Vario Arrow said that they were discontinuing it
because native support was planned since your name was brought up.
Do you know when this might happen
eventually?
Um I'm,
I'm not gonna commit to any specific timelines
when it comes down to this stuff just because
my plate is pretty big and pretty full right now.
Vario
Arrow is somewhere on that list. It's at a pretty low priority right now.
Um And I don't really intend to work on that until uh Quest Pro support gets shipped,
uh which is currently still awaiting for
review.
Uh Let's see, moving down uh Winter caverns asks,
I know flux has a lot of optimizations that need to be done over time,
just asking if code will need to be refactored each change until it's good enough.
Uh Well,
I mean, no, not really, generally, our rule of thumb around these parts are that,
you know, anytime you do go through and uh
anytime we rather go through and
update things and make changes to things,
things should just continue to work unless you're doing
something really scuffed or cursed or something like that.
Only then do we really worry about breaking things?
Um And even then it's one of those things where it's just like,
yeah, we told you not to do that,
you did it anyways
and these are the consequences.
Um So ideally
nothing will break as things become further optimized.
So,
yeah,
uh of course, we'll be doing some of our own testing along the way there.
Uh So moving on to
sein,
so I have FX a a uh disabled with the mod,
which helped a lot on my headset, which is a Pi Max Crystal.
However,
text especially in the inspectors still seems fuzzy
compared to other games in my headset.
Even when set to the same resolution per eye
in other games or even my desktop overlay text can be much smaller in pin sharp.
Is it something on my end I can change
or is it something in resonate that's causing it?
Uh It's probably something in resonate that's causing it.
We do a lot of things in the text renderer uh to
go through and make sure that we can actually render fonts decently.
There's a lot of thing,
there's like a lot of knobs we can adjust for this sort of thing.
Um So text can look sharper or blurrier or whatever and different dis distances.
It may just be that
uh since the move to
linear uh like linear lighting and all that stuff,
most likely something just needs to be tweaked somewhere
to give you a little bit more fidelity on things for the further
off in the distance when it comes down to text in particular.
Now, that being said,
um we do have plans to completely replace FX A
A with a very tweaked entombed version of temporal anti
aliasing.
Um One that
thankfully won't really have a whole lot of
ghosting or pixel artifact or what have you.
Uh as you move your he head around, I've been testing a few things around that.
Um So hopefully that will also further help alleviate this.
Uh It also has a slight sharpening filter too.
So um yeah, hopefully, text generally pops a little bit more.
Uh Some preliminary results look pretty good.
Let's see. Moving on
in sauce. Uh Spean
asks in Sauce,
will the video players use hardware decoding for videos and stuff software?
And would it work for either a MD or NVIDIA slash Intel?
That really depends on the specific decoder that we go for?
I'm really looking at FFM PEG particularly.
I know that like LVLC already uses FFM PEG for a lot of things.
Uh Our reason for going through and just doing
direct integration is just to be a little bit more
uh up to speed as codex evolve and all that good stuff.
Um And FFM peg does support a lot of hardware decoding as well.
For pretty much all of them
we'll need to go through and do a little bit more research
on this one and figure a few things out on it though.
Uh Right now, still really, really early um for the multimedia stuff for Sauce
right now, it's a planned thing.
It's not something that has actually been executed or integrated yet.
So stay tuned. Hopefully, I'll have more information.
I don't know in like a month or something like that.
Whenever I actually get around to that.
Uh Modern asks un
unsure if I ever asked this.
But are there any plans for dual quaternion rotation for skin meshes?
Uh
I mean, you've never asked that
and what you're kind of sort of talking about here is gonna be like for um Well, I mean,
dual quaternion skinning is kind of sort of a standard way to
implement uh skinning when it comes down to this sort of thing.
Um And we would most likely be implementing it. So,
yep, that'll be there.
Wow, we finished, we finished the office hours in 15 minutes. Great job guys.
Uh Seriously though, go ahead and keep the questions coming, can ask,
I may not be able to answer your question necessarily,
but you can ask me pretty much anything as it relates to resonate
and just as a reminder,
this lasts for one hour or so and about uh a little bit less than 45 minutes,
we'll be cutting, we'll be calling it.
So
Trinity end asks what inspired you to make sauce or inspired at all.
Uh So what
inspired me to make sauce?
I mean, like I've,
I've worked on like random rendering engines and
stuff like that many times over the years.
Um
I built some bespoke ones for one or two big names out there.
Um And I've kind of written a lot of my own personal ones.
Um One thing that is problematic for platforms with a lot of user generated content
is, well,
it's kind of a mismatch whenever you do something in
such a dynamic way that we do for resonate.
So like if you build something for Roblox or VR Chat,
you're kind of using an editor that allows you to um
Yyy, you're,
you're using an editor that allows you to kind of bake things down
into packages that are specifically optimized for what you're trying to do.
Uh for something like resonate in second life,
it's a lot more complicated just by nature, by just by the nature of the beast.
So you can go through and just,
you know,
dynamically place things down in a world, stuff like that.
So a baking step isn't really a thing
or uh for those of you from an Unreal engine background, a cooking step.
Um which means you have to have special things inside
your rendering pipeline to deal with these sorts of scenarios.
Uh So
kind of looking back at my overall industry experience and stuff like that.
I kind of decided uh whenever I joined this project, um a good bit back in the day
um
that, hey, yeah,
let's go through and make this uh fairly generic system that allows you to
kind of beat the hell out of it with user generated content.
Um And really goes through and enables the creation of
collaborative user generated content specifically where you're gonna have many,
many people collaborating on the same exact thing um All at the same time
um in a more social style environment.
Uh So that's kind of like where a lot of the um
that, that's where a lot of the uh inspiration came from on this.
Um And as far as why I even got into graphics programming in the first place.
Oh goodness, I was maybe like 13 years old Jesus.
It's like 2003 or something like that.
I got my hands on a uh shall we say
not exactly uh legally acquired uh version of visual studio?
Uh And just decided, hey, I know how to 3D model and stuff like that,
how to actually make this, you know, display on my screen without
begging and pleading my family to take out like a
second mortgage on the house to get an Unreal engine license
because back then game engines were very expensive and very rare. So,
yeah,
uh that's kind of uh
what inspired me to make sauce and what inspired inspired me
generally to get in on this side of software engineering.
Uh Let's see,
Svein
asks, would the move to sauce also allow for dynamic foliated rendering? Yes.
Um At least more easily than what we're able to, to do today.
We're able to do it in unity.
It's,
it just kind of sucks and we're trying not to
put too much more effort into the unity side.
So, yeah, um
it's probably not gonna be a day one feature for sauce,
but it's something that should be generally a lot easier for us to add and maintain.
Climber asks what noticeable changes can be expected from the switch to sauce.
Well, performance would be one of them. Um
Generally
we'll be able to actually push a lot
more through the rendering pipeline uh through sauce.
Uh The fact that uses.net eight will also be a pretty major boon for us as well.
Um There is a little bit of discussion about
maybe making the.net eight jump sooner than later,
but there's a lot of additional work that needs to happen
to make that work.
Uh But there are certain crossroads that
we're already coming up to that's gonna necessitate
some design and engineering work to even make sauce happen um in the first place.
So we're currently discussing some of that stuff.
Uh Another big one will be shader like you'll
actually be able to build custom shader again.
Probably not gonna be a day one, feature, day one.
We're probably gonna be more focused on making
sure there's parity between what's currently shipping with resonate
and what is shipping in sauce as well.
So at least visually things look extremely similar, if not exactly the same.
Uh So that's gonna be uh something that we're gonna be focusing on day one.
Let's see what other things
I am thinking of having a sort of like render graph style
system in there where you can like go through and define like,
OK, this is how the subject should actually be rendered,
which goes a little bit above and beyond what you can do with shader.
Um So,
um probably gonna be looking into uh exposing some of that stuff as well.
So you'll be able to do like entirely custom render pipes
uh to an extent.
Um That's definitely, that's probably not even a year one feature though.
There's lots of things that uh
we're probably gonna be kicking the can a little
bit on just as we settle into using sauce.
Um
That's,
those are kind of the big things there, I guess with it.
So, yeah, there's that
um got some fun facts.
Uh Sauce is written in rust for the most part, at least is going to be
everything else is just a C# interface into it from there.
Um So you got that.
Uh What else?
Oh Yeah, you'll be able to go through and prioritize uh asset streaming.
Um a little bit
more, more in a cleaner way.
So you'll be able to say, hey, I always want this texture to be in memory or hey,
I want this to have a high streaming priority or something like that.
Uh Just a bunch of cool stuff like that. Who knows?
Maybe one day we'll even get into virtual texturing and stuff like that.
But that's uh
that's gonna require some much bigger changes uh
along the way inside of resin night.
Uh primarily around the asset variant system and all that stuff. Yeah, there you go.
Uh Fin
asks with the mention of moving to FFN PEG directly.
Does this mean proper support for OPUS so we can replace Vor?
I mean,
no, not really.
Um
Like, I'm pretty sure Vor
Bis is still pretty well
supported. Uh Opus, I'm not
mm
pretty sure that's mostly just used for voice.
So uh an FFM peg would not really be particularly great
for real time encoding of voice and then broadcasting it,
we're probably still gonna end up utilizing
our own internal version of OPUS for that
uh at Trinity. And as shader are often a topic, I've seen
people talking about with some people saying that they need things like poo
functionality.
You think shader like that are possible to do resonate
once it moves over to sauce and shader functionality is added
or would those kinds of things uh kinds of heavy
duty shader be a bit too much to expect?
Well, I mean, all right. So this is the weird thing. Um
First and foremost, uh things like Po
Yomi
um really what we would do for something like that is use rendered layers instead,
which is something
that we can feasibly add today.
Um
I've been doing a lot of research around that.
Um And the biggest uh thing that we could do there is make it so that you can just have
kind of like a sort of layer system for existing materials
and just go through and say, yep, I want, I want them in this order,
that order or the other order.
Um Generally,
what we probably end up doing once we actually
have proper shader functionality is exposing uh that even further
uh through proto flux uh kind of in a
similar fashion to unreal new substrate material system.
Uh So just kind of a high level view of what
substrate does uh that's so different from previous material systems.
Um So usually in unreal and unity,
you have like a shader or a material graph that
you define OK.
This is the specific shading algorithm I wanna use all this other cool stuff,
you know, output to some speci
some pre specified outputs
and real cases they have deferred renderer, you can specify albedo metallic,
et cetera basically.
Uh well, what something like substrate does is it is it allows you to
blend different effects together,
kind of chain them together as like a foreground,
a background with like a blending mask
uh and be able to make really complex uh
uh effects and materials and stuff like that
uh that you weren't really able to do easily before as an artist.
Uh What this basically enables you to do is like car paint. Great example.
Uh you can have like a clear coat pass, you can have a,
um you can have like a sort of metallic flake pass.
You have like a base coat pass, things like that
and be able just to kind of blend them all together,
um using different masking options and stuff like that,
I think really that's kind of where we're going to end up going,
which will get you way more than what poo
is currently capable of today
um in a much more artist friendly kind of manner as well. Uh At
that point,
you're really just kind of picking and choosing exactly what
you want uh and enabling them um as you need.
Uh So, yeah. Uh
and also I'm going to re enter,
I'm going to reanswer winter caverns um question real quick
since they were not in the office hour stage,
apparently.
Uh Basically,
when it comes down to uh needing to redo or refactor,
any proto flux as we introduce optimizations
generally, no,
we try to maintain backwards compatibility as much as we possibly can.
Only if you're doing something that's like really scuffed that we are generally
going to tell you not to do or ask that you don't do
well, you need to worry about something.
Uh ref hacking is probably one of the um
one of the most well documented do not do this sort of
things because we may change things later that will break this functionality.
Um Just as one example,
those are the only uh cases where I could really foresee us breaking things.
So yeah, just make sure you stick with,
you know,
things that are generally accepted practices when it comes down to your proto flux,
don't try to do like weird things like ref hacking.
Um because those are things that we could end up breaking down the road.
Of course, we try not to break anything intentionally,
but you never know.
OK.
Uh Moving on
Rampa
asks how, how high on the
priority list is mobile compatibility ever?
Everywhere we got popularized by any content creator, big chunk of the comments is,
does this run on quest?
Another complicated one.
Right now with how unity works,
it's kind of a crapshoot trying to make that work with resonate.
Um It's like you have like two competing,
it's like you have like two competing engines here.
Um
And unfortunately we're on the crap end of the stick because of mono pretty much.
Uh So Mono's garbage collector
is awful when it comes down to resonate and the cogeneration is also just awful.
Um It's not even as good as the compatible uh as the compatible versions of.net uh
that
it's compatible with.
Um So
we need to get past that hurdle first and foremost.net A
will help substantially as far as getting on to quest
um and similar platforms.
Um
There are some
open questions around how we'll be able to do that if we're still using unity
uh that we haven't quite figured out yet,
but also would be a massive enabler for that.
That doesn't mean we're gonna ship quest compatibility with day one of sauce.
Um But definitely getting android compatibility
with sauce working sooner than later
is uh pretty high up on the priority list for me.
At least, just so we can at least, you know,
have something that you can use on android from sauce
and then start, you know, of course,
binding uh for extension into it and getting rein
up and running with it as well. So
high from a sauce perspective,
we'll see from a resonate perspective and a lot of that is
just how feasible it's going to be once we actually get there.
So next up modern ask will FFT be added any time soon.
Uh So we've decided that we're just gonna wait
until we have collection support there just because it
would make things a lot easier and we don't
have to go through some of our sometimes wacky um
to put it nicely. Uh upgrade mechanisms, they work pretty consistently, but,
you know, trying to go through and upgrade things
can get a little bit hairy at times.
Uh Especially whenever we have different edge cases and stuff like that.
So we'd like to go through and avoid that if at all possible.
Uh Svein
asks,
is there any discussion slash plans for adding something like led
s or even a system to autogenic lo DS kind of like
na
Nanite or do you think that isn't needed?
Uh Well, actually right now,
uh one of the things I was working on the other
day within sauce itself is our new mesh buffer uh system.
So you'll actually be able to, like, it already understands what an lod is.
Uh I was working on that mostly because we need multi material support anyways.
Um But yeah,
you can already kind of do Lod groups as it stands today,
but they're not very intuitive or obvious for that matter.
Um But yeah,
Lo Ds will definitely be in there as to something like Nanite uh
which is very different from like led S and stuff like that.
NANITES.
Main thing is the ability to stream things in um very
efficiently and then effectively software raster them on the GP U.
There's some really cool stuff uh in there, but as of right now,
there aren't any plans to do something like
Nanite yet.
Uh There's gonna be a bit of preprocessing that we
have to do to meshes to make that happen.
Um But it's, it's like down the road in terms of, of current priorities.
Uh That being said,
uh we will have 32 bit uh index buffers
which allows you to import some pretty big meshes.
So that'll be nice, just not particularly optimal.
Um Moving on,
let's see here, two separate questions from Lux,
I know material errors was mentioned as a future.
Will this happen before SARS still deciding on that? Um It is
potentially feasible today, but it's gonna require a lot of work to get done today.
Uh Just as well,
you could potentially argue that it would take an equal
amount of work to make it work under sauce.
So the question becomes, do we just go ahead and bite the bullet today or
a and basically have to repeat the work later for sauce or at
least part of the work later for sauce or do we go through and
just wait till sauce comes about and just use the hours that would
be put into it uh today for hours to get sauce shipping sooner.
So
yeah.
Uh still question mark,
I still need to do some more research on all the things that we need to do there.
Uh And make sure that whatever decision is made,
it's something that isn't going to make source integration harder down the road.
Uh Let's see.
The second one is how will material layers handle stacking displacement.
As currently you cannot stack materials on top of displacement materials.
Uh That's also why we're currently thinking about it right now.
Um
So
one way to do this is to kind of go through and just, you know,
have a geometry program or a mesh program or something like that, just bake out a um
basically bake out a vertex buffer for you
um prior to any sort of fragment shading,
um that would be not entirely difficult to do um under unity as it stands today,
especially since we're already working on some mesh shader emulation
um for sauce specifically.
Uh So, in theory, we could just do that,
um it would also trickle over to sauce as well uh which is always a massive positive.
Um And then from there,
like you just kind of start adding your uh effects uh upon that.
Uh So like really, it's kind of like multiple steps here.
Uh One is figuring out. OK. So you have like a,
you have like a vertex or geometry part of the material
and you set up layers for those which gives you like a
final output um that you can then go through and apply different
shader effects to um as part of the material layering process.
So,
yeah, um it's complicated
but it's generally doable. We just need to figure out the specifics around it.
Modern asks what's being worked on right now in general.
Um So as I mentioned,
uh during the obligatory housekeeping part of the office hours,
uh L the LC currently working through a couple of issues with that
found a weird bug with that one that uh makes it so that
you can only really load one video and only once, which is really strange.
So I'm looking into that right now. Otherwise the
BLC is actually pretty decently far along.
Uh We finally have audio buffers coming through
and playing with specialized audio side of resin
and the D sync is
well, I'm not gonna say non-existent, but
if it's there, it's, it's very, very low as far as I can tell.
So that's good.
Um
Fruits is currently working on the 3d texture
fixes so you can have color profiles there.
That one's a bit of a complicated one just because of how unity works.
Uh We have to do some funny stuff there to actually make that work within unity.
Uh Good thing is is that pretty much the entire texture uh upload pipeline gets
a little bit of TLC which it's been needing for a little bit now.
Um And is in a more unified state. Uh Thanks to it.
So that's nice. Uh Sauce is generally prioritized right now.
Um trying to make it so that we can potentially ship uh sauce before fall of this year.
Um But no promises on that, we'll see what happens.
Um There's still a lot of work to do on that.
Think that covers it
as far as that question.
Uh Next from modern also, what are,
what are thoughts on doing something like
adding a component to alert between textures.
I know the alert materials exist but they don't support certain things.
So currently I have to use a camera.
Uh I mean, you sh you should be able to use a texture fader.
Uh texture fader should be able to do things uh like that.
Uh Is there any specific reason why
texture fader doesn't work? OK. Can you ex if, if it doesn't work?
Uh Please open a github.
Um So we can at least document that, please. Thank you.
All right,
let's see here. We're 36 past the hour.
Any other questions or are we just gonna sit here and vibe or keep them coming?
We'll probably do a cut off of questions. Five before the hour.
Lux asks, is a race po being prioritized in the near future. Uh Can you
like? What kind of race are you talking about? Collections and proto flux or
I need some clarification on that?
Uh Yeah. Um Right now, we have a bunch of other things that we're working on.
Uh collections have not yet been prioritized.
We're hoping sooner than later though.
Uh But we just have a very large pile of work. We have to get done
and unfortunately not, all of us are really working full time on the project. So
Trinities end asks, how are business decisions made at resonate, not,
not necessarily into the nitty gritty,
but generally deciding the direction of the company and application?
Well, I mean,
those are two separate things, the company and the application um
and business decision making is oftentimes
very different from feature decision making.
Uh but it does oftentimes act as an input into that
uh when it comes down to how we make these sorts of decisions.
We weigh a ton of factors.
Uh Everything from what's the current regulatory lay of the land for
certain things that we may need to change in terms of policy
and in terms of uh features we may need to implement in the near future.
Uh Right down to, hey,
what's our current financial state and what are we looking at
in terms of additional sales in the business to business sector?
Uh stuff like that.
Uh which by the way, guys, just, just as a matter of transparency here,
uh the business to consumer model, which you know, most people are using,
resonate with, that's not our only channel that we actually have,
we also have a business to business
uh end of the company as well.
Um
That can sometimes influence things such as uh the proxy support being added.
Uh by the way,
that was a ask from one of our business to business
customers and we decided just to go ahead and do it.
Um
Other things like that.
Uh Same goes for like single sign on support,
another uh decision that was made because we had
a business customer ask us to do that.
Um So we just did it.
Um
So yeah, there,
there's all sorts of criteria we also evaluate and review current priorities.
So for example,
we want to make performance a big priority here in the relative near future.
OK.
Well, how does that go, how,
how do all these other inputs fit into that uh specific priority?
Do we have any business customers that are asking for
things that could significantly bump that up in priority?
Uh Stuff like that?
Um
I would like to say that it's not particularly complicated,
but it can be depending on if we have any competing signals.
So for example,
if people are wanting a specific feature set that doesn't exist today,
we have a lot of people who want that.
We know this is going to be a very big thing
that's gonna require participation from everyone on the engineering team,
from people in the content team and so on.
Um
And then we have like other things going on as well,
then we have to kind of weigh different things along the way there.
Um It's also really difficult to add dollar amounts
to this sort of thing to clarify things.
Um So yeah,
um we're always trying to figure out better ways to go through
and make these sorts of decisions uh particularly as a business um
and better refine our signals and stuff like that.
So it's a little bit complicated basically.
Um
So moving on to spec
in, uh he asks, is there any particular reason resonate slash uni
just consumes all of my V ra M even in the old style plate worlds?
I,
I mean, avatars are oftentimes a cause for that.
Uh it shouldn't be just straight up consuming all of your V ra M.
Um Right now,
we don't have a whole lot of texture lod or texture streaming stuff going on.
So you have like an avatar with
eight K textures all across the board.
You eat your V ra M is gonna be eaten alive. That's just gonna be what happens.
Um If you have complicated meshes or anything like that,
your VRM is also probably gonna be completely wrecked.
Um Stuff like that.
Uh Generally better texture streaming and resource streaming will
help a lot with this because at that point,
it's more a matter of OK,
let's go through and set texture and resource streaming budgets
uh that can better fit within a arbitrary allocation
A V AM rather than trying to just consume all of your V RA M.
So yeah, you have a few different things to worry about on that one.
Content optimization is not a magical thing that we can just do.
So, yeah.
Uh Cobalt Sky
asks,
I sometimes spawn into my home world with my virtual hand stuck
to my lower left and leaves me unable to move them.
I was told this might be a virtual desktop issue and to turn off hand tracking
which worked temporarily, but the issue came back. Is there any fix for this?
I'm
not that I'm aware of. This is the first time I've heard of this problem.
It
sounds like it could be a virtual desktop problem.
I don't really use virtual desktop unfortunately.
So, I mean, I couldn't really tell you for sure what's going on there.
Sorry, I, I just don't really have a whole lot of information on there.
If you want, you can go and create a github
issue for this though.
Um So we can at least try and narrow it down
to if it's just something funky with virtual desktop or not.
Specs, asks,
I don't think I spotted a thread to discuss a new non PB R slash tune shader and
github where you intended to create a discussion thread or do
you mind if a community member opens one up instead?
Uh I'll do that one. That is a bit of a complicated one.
A lot of people have a lot of asks for that sort of thing.
I'm sure Polloi
will be brought up many,
many times throughout that one because people just really want Polloi
and we just can't do that.
Um But yeah, I'll go ahead and create that one for you.
Uh At some point,
it'll probably end up just being a discussion thread for now just because there's
a lot of competing things people uh tend to want out of Tomb Shavers.
Uh Klein Low asks since res
since Reson Night's ancestor kind of supported a bunch
of various hardware and native hardware support is a priority.
Has there been any thought toward taking uh
direct camera input from Iron face camera feeds
and having the client interpret it rather than relying on various middle wars.
Uh,
I mean, like, are you all right, I need some clarification here.
Um,
are you talking about just straight up taking the raw camera feed and then just
doing their own iron face tracking? Is that what you're asking about here?
I mean,
first of all, we don't really want to have direct camera feed, uh,
input. We, we just kind of don't really want that. Um
We'd rather go through and have a third party middleware do that.
Um That way it's not a yet another line item that we have to
maintain that adds a lot of heft to our code base as it stands,
our code base is pretty hefty as uh uh like, like today,
we don't really want to go through and intentionally
make that worse or rather unintentionally in this case.
Um So we're probably never going to do that in particular.
So you're probably always going to need some sort of middleware somewhere.
Um This is for a lot of reasons. Um
And uh you know, it's just
why
whenever there's already good open,
whenever there's already great open source alternatives out there that can
already set up an interface that we can just talk to.
That seems way better to me rather than having a very,
very big list of dependencies to make these sorts of things work.
So yeah,
sorry.
No plans on that
though. That being said if you want to see like if you wanted something like um
us here, I think it's open VC integration.
I think, I think that's the name of the webcam based uh ion face tracking solution.
Um We could look into having that uh integration exist so
you just launch the open VC app or whatever it is
and it just works. We could look into that
but we're not going to straight up be looking at your web camera.
Uh Dave Heiser
asks, uh I'm a first time listener. Newbie.
Is there documentation for the tools, inspector, components, et cetera.
I like the video tutorials but the coverage is limited.
Uh Not yet. The wiki is something that is being worked on
um at a pretty feverish pace right now. Um
I, I know that uh I, I know that prime
really wants to get that out as soon as humanly possible right now.
So he's currently trying to get that sorted out.
Um So yeah,
uh stay tuned on that.
We'll have something to announce hopefully in the not too distant future.
Modern ask. So question regarding the texture fader fader thing from earlier?
How does it work? I may be using it wrong?
Oh.
Yeah, so the, the uh OK, I see where you edited your post quick update,
found out uh how it works, but it doesn't fade between the textures.
It's either one texture or the other. So, no, it doesn't work for my use.
Just post
the github
um with a video as well uh demonstrating
the behavior that you're seeing Klein low asks.
Speaking of content optimization,
there was once talk of maybe uh a frame time analyzer
being made available in the inspector in the old platform.
Is this still on the table? Yes, yes, it is.
We want to add uh a myriad of different profiling tools
uh that you can go through and look at.
So you can better understand why things are performing the
way they are um for different parts of the pipeline.
Um I may go through and add like something like Tracy support as well.
So that way if you have like a copy of Tracy somewhere on your computer
and you just launch it with like, I don't know,
like a Tracy flag or maybe we will put in a toggle the debug or something like that.
I'll just go through and start uh enabling
you to collect uh a bunch of detailed information
as far as um how things are running inside of resonate.
Um But yeah, you're gonna have like different levels of fidelity there.
Obviously,
you don't need Tracy for every job that's like a PICO
second resolution profiler and it emits a lot of information,
a lot of which you probably don't really care about.
Uh But it's an option if you want to get into mo more
nitty gritty sort of analysis of what's going on inside the application.
Um
But, yeah,
Kalt
Scythe asks. Speaking of
unt
avatars, are there plans to add any native culling system to have a fallback,
like replacement for those models?
Yes. Yes, there will be.
Um, we do wanna have native culling more generally right now.
We have only have like frustum culling.
Um, but we don't wanna have like, object to object culling and stuff like that.
Um, at some point,
uh,
we're still thinking about that one and maybe something
that has to come with sauce just because,
you know, getting like hardware queries and stuff like that isn't exactly
ideal on unity and it honestly just kind of sucks on unity.
Um
And as far as like Fallback, like replacement for those models,
um
that's really getting more into LO Ds and eventually imposters.
I do want to have imposters at some point for objects more generally.
So that way you can have like
a giant freaking forest with like really well rendered and
detailed imposters um at diverse distances and stuff like that.
And once that can actually work with shadow mapping as well,
um Not to mention, avatars can also benefit from that uh too with lower lod,
with lower LO DS being rendered uh uh and sparsely updated
within like an imposter texture or something along those lines.
But yeah,
uh basically, yes, we do have plants around that.
It's just right now a little bit at the bottom of the pile and when it comes down
to priorities just because we have a bunch of other things that need to be done first,
uh train
and asked how has your work in second Life helped
you be prepared for the stuff you're doing in resonate?
Has there been any complications you, you doing work for both?
I mean, there's always, well, well, let's, let's,
let's start with the last part of that question.
Uh There's always been questions around like how,
where I allocate my time and whatnot.
And I mean, just to be completely transparent and clear on this one,
working on second life is what pays me,
resite,
doesn't pay me and that is by choice on my end.
Um So of course, resonate kind of gets to be more
whenever I'm not working at my 9 to 5.
Um That generally seems to keep things um All right,
uh from the looks of it.
So things don't seem to be too much uh too,
too problematic when it comes down to that end of things.
Um
in terms of how my work on Second life has prepared me for this kind of stuff.
I mean, like really just kind of comes down to come, comes back to user
generated content.
Um I, I created like the first version of materials for Second Life way back in the day
as part of the Exodus for
project and some of my open source contributions way back then.
Um
And I've seen a lot of the different um
performance uh cases where it comes down to something like a, use a platform that's
well just,
you know, all user generated content basically.
Um
So there's a lot of different complicated uh
performance cases for that sort of thing.
And uh
the worst of which is trying to teach people how to create optimized content.
And then actually using that advice and those
teachings and that documentation to produce optimized content.
That's probably the biggest challenge and not one that is
easily solved through any sort of technical solution either.
So,
yeah,
always fun
when it comes down to this sort of thing.
Um So yeah, there you go.
Uh Rampa
asks just reminded me, could in the future
be a bot made that would just post github issues based on a form on the resite
homepage or some other type of link github
is extremely hostile to non programmer users to grasp
this way we could dodge having to move anything else while
giving average Joe chance to use something easier for them.
Yes, actually, we do want to work on that.
We actually want to have like an in game uh bug reporter as well.
Um We have generally identified that there's a lot of people who
uh for one reason or another uh can't grasp github
and that's perfectly understandable.
Uh What that then means is, you know, we then have to figure out alternatives to
github.
Um There's a lot of different ways you can, uh, attack this. Um,
you can go through and say, all right. Well,
you have to always, you know,
we have to go through and make it so that
you have a bot that just posts issues to github.
Right.
Then we have to add some tracking on top of that or we just don't use github,
which we really don't want to do either.
Um So yeah, just stay tuned. We're thinking about it. We want to work on it.
We wanna, we wanna make this a lot, um, a lot more friction free.
All right. We're almost at five till
and, uh, I'll
give everyone one more minute to post their questions and after that,
we're cutting it off.
All right,
I think we're gonna cut it there.
Uh, Trinity's end asks, uh, my last question
with the New Year.
Most people set goals for themselves while not really a work question.
Do you have any goals for your New Year?
Pretty much ship sauce? Maybe lose some weight along the way.
Eat healthier, you know, the usual stuff. Um,
definitely,
definitely want to start making more progress on getting things working for stand
alone just because that would be a really nice thing to have,
especially with how powerful headsets are getting.
Um,
who knows? Maybe, maybe you'll find,
um, the odd user logging in with a vision pro hard to say.
Uh, but yeah, um, lots of things I want to do, uh, over the coming year.
Those are kind of like the, the bigger bullet points, I guess.
Um,
get stuff like that moving.
Uh How do you mean Rampa?
Like, are we talking like, um,
like, better not, we,
we do have like four more minutes so we can have just general discussion uh,
at this point.
But yeah, um, at the top of the hour, um, we're wrapping up.
Oh, yeah. I
mean,
Quest Pro is generally fine whenever it comes to ra M
ish. Uh And our biggest problem isn't really
how much RA M is available on the system. It's just mono is kind of garbage.
Um
Like
the biggest problem is when it comes down to this.
Um And this is why even small worlds without that many assets can just cause
a crash on,
on quest two
and even Quest Pro
and even Quest three,
it's just memory fragmentation.
Um The uh garbage collector and the version and the
version of mono that unity uses just isn't very good.
So whenever we uh de
allocate things and stuff like that,
we end up with a lot of gaps. Um And basically, and in memory.
So what that ends up resulting in is um
and we try to allocate something.
Um God, I, I wish I was screen sharing right now.
So I could more visually illustrate this. But uh
basically
where we go through and um
allocate a bunch of things. Uh Of course, things eventually have to de
be de
allocated or destroyed from memo from memory.
This creates basically a bunch of holes that look like Swiss cheese.
Well, whenever we need to allocate something else, we need to figure out. OK.
Well, can I fit this allocation
inside of this space or this other space or this other space over here?
Oftentimes the answer is going to be no,
which results in a whole new block of memory getting allocated towards the end.
So you rinse and repeat this over and over again.
Uh until you run out of memory.
Basically, you're not really out of memory,
you just can't allocate anything else which causes a crash
because we don't really have a well compacted
chunk of memory that we're always working against.
Um dot net eight will help a whole lot with that just because it's not only
is its garbage collector miles above and beyond
what's uh shifting inside of unity right now,
but also just generally code generation is way way better with.net eight.
Um It's actually rather impressive in a lot of places as well.
Like.net is actually approaching native performance in a lot of places,
which is freaking awesome.
But yeah, um hopefully
with Sauce and.net eight and all that stuff.
Uh quest will actually be far more feasible if
we do end up doing.net eight before sauce,
which will probably require mm uh Basically
uh Interros
communication and multiprocessor.
So we can actually just shove you know, worlds into
their own processes and stuff like that.
Um That would actually um th th that,
that could be a little bit weird on uh quest know that
Android does have the concept of I PC and child processes.
Um But it would also help substantially with this
whole memory compacting problem and stuff like that.
Uh which in turn would mean that you can allocate more
stuff on quest um without having to worry about the problem
that I mentioned where it doesn't fit in the space any
space in terms of the memory that you currently have allocated.
All right, we'll just allocate it on the end and hope that you don't crash. So yeah,
anyways, uh it is top of the hour. Thank you everyone once again for
uh coming in today uh as a reminder for any newcomers.
Uh This happens once every two weeks, uh every other Wednesday,
our next one is and let me just check the event calendar.
It is gonna be Wednesday January 17th, starting at 5 p.m. pacific time.
Uh If ever you're wondering um where to look for office hours?
Uh Mine is not the only one probable prime has his
as does uh moderation.
You can go through and check it uh on the by following the
events link at the top of the Discord servers uh channel list.
Anyways, thanks again everyone.
Um See you soon.