Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

368 total results found

How I Test Weight Painting on Avatars

Random Assorted Tips With Trixxed Unity Tips

Typically most people (at least the people I know) often test their avatar using MMD worlds and such. This involves uploading the avatar which takes time and isn't really ideal. You could try converting an animation onto a character in Blender but that can be ...

Unity
Avatar
VRChat
Avatar

Introduction

Udon Benchmarking and performance tests

Last update : February 2023 As many of you may already know, Udon can be pretty slow, but I was curious to know what really slows it down, so I made a world called "Udon Benchmark" to benchmark it, the world can be found here https://vrchat.com/home/world/wrl...

U# vs C#

Udon Benchmarking and performance tests Let's run some benchmarks!

U# is noticeably slower than regular C#, to benchmark it I decided to execute two scripts in U# and C#, one calculates the n-th Fibonacci number, the second one generates a maze. To make those tests a bit fairer, I disable the C# compiler optimization, since ...

For loop

Udon Benchmarking and performance tests Let's run some benchmarks!

For this test I was curious to see how well Udon executes for-loops, and the results I got were really unexpected. I executed two methods Benchmark1 and Benchmark2 and compared their execution time. public override void Benchmark1() { int number = 0; fo...

Recursive vs iterative

Udon Benchmarking and performance tests Let's run some benchmarks!

For this test I was curious to see how well Udon executes recursive methods, in the previous test I already compared the execution time of recursive functions in U# and C#, but here I wanted to compare the execution time between a recursive function and an ite...

Builtin functions vs calculating something manually

Udon Benchmarking and performance tests Let's run some benchmarks!

Let's say you want to calculate the distance between two vectors. Some of you would probably write something like this : distance = Vector3.Distance(a,b); Others might write something like this (which is how Unity implemented the Distance method) : float n...

Function overhead test

Udon Benchmarking and performance tests Let's run some benchmarks!

For this test I was curious to see the overhead of a function call I executed two methods Benchmark1 and Benchmark2 and compared their execution time. private void Func() { int j = 0; } public override void Benchmark1() { for (int i = 0; i < 50000;...

GetComponent<>()

Udon Benchmarking and performance tests Let's run some benchmarks!

Many of you may already know that calling GetComponent is pretty expensive in Unity. But how expensive is it in Udon? Let's see! I executed two methods Benchmark1 and Benchmark2 and compared their execution time. public override void Benchmark1() { Labyr...

Calling methods from a separate script

Udon Benchmarking and performance tests Let's run some benchmarks!

Let's say you have script A that accesses a method from script B. Would it be more performant to merge script A and B together? Let's see! public Fibonacci FibonacciInstance; [RecursiveMethod] private int FibonacciRecursive(int n) { if (n <= 0) r...

Caching Networking.LocalPlayer

Udon Benchmarking and performance tests Let's run some benchmarks!

Some programmers like to cache the local player for later use, for instance by adding a private member private VRCPlayerAPI _localPLayer; then setting the local player _localPlayer = Networking.LocalPlayer; in Start() Let's see how it affects the performance ...

The "ref" keyword

Udon Benchmarking and performance tests Let's run some benchmarks!

U# now supports the "ref" keyword, which is really cool! For those who don't know what the "ref" keyword does, I'll link the C# documentation here : https://learn.microsoft.com/en-US/dotnet/csharp/language-reference/keywords/ref But does it affect the perform...

Other Udon optimization tips

Udon Benchmarking and performance tests

Update events, like Update() or FixedUpdate() It is generally not recommended to execute code every frame, the performance impact can be quite noticeable. FixedUpdate()  is even worse because the refresh rate is generally higher. It is actually locked to you...

Draw Calls (Materials and Meshes)

Things You Should Know About Optimization Basic Optimization

Generally, you should keep your material count as low as possible, as every new mesh and material in a scene counts as a new draw call, a draw call is an instruction to the graphics card on what to draw and how to draw it, the more draw calls you have, the mor...

VRChat
Avatar
VRChat
Optimization
Unity
Optimization
Unity
Optimization

VRAM Usage A.K.A Stop Being Monsters With Your Textures

Things You Should Know About Optimization Basic Optimization

With the most recent Developer Update post at the time of writing this, we have learned that Avatar Texture VRAM will now be accounted in the performance ranking. Below is a table of what the VRAM limits will be according to the dev post. Excellent ...

VRChat
Avatar
Unity
Optimization
VRChat
Optimization

Realtime Texturing with Clip Studio Paint & Clip Studio Modeler

Random Assorted Tips With Trixxed Blender Tips

This one isn't mainly about Blender, however, if you own Clip Studio Paint, you can use an app that comes with Clip Studio to texture in (mostly) real-time. There are many pros & cons to this method of texturing things. Which I'll list below: Pros Easie...

Workflow
Texturing
Blender

400 Update() calls vs one Update() call iterating 400 times

Udon Benchmarking and performance tests Let's run some benchmarks!

What would be more performant in Udon? 400 GameObjects executing some code every frame with an Update event : public class EveryFrame : UdonSharpBehaviour { void Update() { transform.position = Vector3.zero; } }  One GameObject with one Upd...

Tutorial

Easy Avatar 3.0 Toggles

This is the script to a video I never got around to recording. I apologize for the lack of pictures. To see my other tutorials, visit my YouTube channel. Getting Started First you want to download this tool from Gumroad. Type “0” into the payment box, th...

Helpful External Resources

Random Assorted Tips With Trixxed

There are many helpful guides and resources across the internet I'd love to share but I don't have the justification to just make a single page for each with just a link in it, so this is here as a list of various resources that have helped me in my processes!...