An undirected ramble about Furality Sylva

Comments

This past weekend was Furality, which was a pretty darn good time in general. I found it pretty enjoyable and I’ll definitely be doing it again. I figure I’ll share some random undirected thoughts about it.

Read more…

Become critter!

Comments

So whatever happened to my VRChat avatar project?

Well, it went really well, so well that I decided to make it a purchasable base model. You can get it for as low as $25 (with a suggested minimum of $30). It also comes with extensive documentation about how to add more materials and I feel like my setup for material swapping is really well-designed and makes things much easier than I’ve seen on other avatars. So it’s probably worth buying just for that alone!

At some point I’ll probably start putting some VRChat documentation onto this site (including the material-swap guide and an explanation of how I set my system up since it’s pretty easy to apply to other avatars and makes life much, much easier). But I kind of want to do some site layout refreshing first. And I need to figure out which section of the site is best suited for it. So, quick poll, what makes the most sense?

Even more VRChat tips and tricks

Comments

I’ve been completely redoing my avatar from scratch and this time around it’s turned out great!

Anyway now that I’ve learned more about Blender and VRChat in general I have a bunch more stuff to share since last time. (And some of this will apply to Unity in general too! Sort of, anyway.)

Read more…

Matrix Third Room

Comments

Back when the VRChat debacle took place, I’d rambled quite a lot about the idea of a standards-based truly-distributed VR system. I probably mentioned how back in the day I was designing something like that, and was intending to use XMPP as the actual transport mechanism; in my more recent reevaluation of the idea I was thinking that using WebRTC to stream the actual realtime data (voice, character animation, etc.) would be the way forward.

Well, the Matrix folks just announced Third Room, which is the same basic concept, running on Matrix and WebRTC! They’ve also made a bunch of other great technology choices along the way.

This is pretty exciting and I’m looking forward to seeing where it goes. At least from a 20,000-foot view it hits all of the right notes for me. For example, using glTF for all object interchange, focusing on in-world editing, and allowing for (apparently optional) world persistence.

Hopefully this can disrupt the stranglehold VRChat has on social VR and will also be a fun, compelling experience in its own right.

Plaid!

Comments

I reached another big milestone on my avatar!

Then I used it in an area with a low-resolution mirror and noticed some really bad texture seams around the edges of the pigmentation map. And I’m wondering if the pigmentation map approach is really all that useful for the avatar in realtime.

Read more…

Surface texturing idea

Comments

Right now I’ve been trying to make some more of the pigmentation maps for the critter avatar, and in particular I want to make one for the splotchy coloration (which would also be possibly useful for calico and blue giraffe). But hand-drawing this on a disjoint surface is pretty obnoxious.

Read more…

VRChat avatar, referred colormaps edition

Comments

Today I put my literal shower thought into action, and redid the pigment mapping stuff to use a color lookup table instead. And hoo boy, were there a lot of pitfalls; namely:

  • Unity defaults to loading color textures as sRGB, and does so by linearizing the color space
  • The default wrapped texture lookup causes all sorts of fun boundary conditions to happen
  • Default texture compression completely hecks up texture values which rely on precise lookups
  • Oh right, interpolation can’t solve precision issues

Read more…

Another VRChat shader revelation

Comments

I don’t actually need the pigment map to look good in untrusted mode: I can have the material itself provide a fallback texture! There’s nothing stopping me from putting a _MainTex slot on the shader which just does nothing on the shader, but which would be used by the Standard fallback; I can use other texture slots for the pigment map and palette. So obvious.

Also, when laying out the palette, it would be helpful to group related things next to each other, which makes mipmapping play more nicely (and also makes authoring eaiser, although still not as easy as just fiddling with sliders in the Unity editor, unfortunately).

Read more…

Come to think of it…

Comments

It would probably make a lot more sense to just do all of the color schemes as indirect lookups on a “swatch” texture. The math is a lot simpler, it would allow other things like baking gradients in easily, and would also give a lot more flexibility when it comes to various interactions; for example, I’d be able to encode arbitrarily many skin colors into things, which would allow for argyle and such as well. Plus it would give me even more color slots to work with, so I could also have separate colors for the lips, tongue, nose, and inside of the mouth (which are currently stuck using the same color).

Also, doing that would only require two of the channels in the pigment map, which would free up the other two channels for the occlusion and subsurface maps, which would make everything way more efficient overall.

Yeah, I like this idea.