Recently I discovered a Chinese company that is planning to build an open source engine based on WebGPU: Orillusion
bilibili.com
I extracted a part of the content and hope to share and discuss with you.
The following is from Google Translate:
Three.js and Babylon.js, in the corresponding branches, have done access to WebGPU capabilities and some demos. We have seen their implementation and demo, and we are even more convinced that there is a high probability that they will not be able to do the WebGPU engine.
Because the engine architectures of Three.js and Babylon.js are both designed for WebGL, and WebGPU can be said to have undergone earth-shaking changes compared to WebGL, canceling the global state machine and giving developers too many permissions to control memory , added Compute Shader and more. Therefore, Three.js and Babylon.js cannot be said to support WebGPU, but can only be said to be connected to WebGPU, but due to historical burdens, they cannot take advantage of WebGPU at all.
The WebGPU Demo of Three.js has almost no improvement compared to the WebGL Demo. Encapsulating the more high-level and complex Babylon.js, the implementation of WebGPU’s Demo is even slower than WebGL.
https://demo.orillusion.com/ecs/example/asteroids.html
If Three.js and Babylon.js really want to make an engine that can fully utilize the performance of WebGPU, they can only break their wrists and completely reconstruct the engine framework. Because the historical baggage of Three.js and Babylon.js is too heavy, they have a large number of users, and a large number of functional implementations, it takes a lot of courage to completely give up and develop again, and we have not seen any such sign.
What do you think of the above point of view ?
I think the article is biased which is not surprising since the writer wants to promote Orillusion.
Because I’m one of the developers of
three.js
, I’m also some sort of biased and not in the position for objectively comparing other engines with
three.js
.
The only thing I want to say is: The developers who support
three.js
(and
BabylonJS
) have a lot of experience in 3D, are well-educated and are sometimes directly involved in the WebGL, WebGPU, WebXR or glTF standardization process or browser implementations. I’m convinced the teams will make sure to utilize the advantages coming along with WebGPU. Even if this means to introduce some breaking changes when migrating from WebGL to WebGPU.
really now, “denied by referrer access control list”? they hide the demo from 3js people? what are they afraid of with their superior technology, lol
image
942×454 23.9 KB
Allow me to translate what
@Mugen87
said in somewhat of non-confrontational and inoffensive way is this:
Orillusion guys are not special in any way. They are no geniuses who have discovered the truth of the universe.
People working on
three.js
are some of the best in the industry
People who work on
three.js
are some of the same people who have
CREATED
WebGPU
standard. Meaning that they are extremely well positioned to take advantage of said standard.
The fact that
three.js
is a
WebGL
engine currently means close to 0 for its success with
WebGPU
, as three.js will change, and
WebGPURenderer
has a very different architecture, one that takes advantage of
WebGPU
-specific features.
What Orillusion guys wrote about Orillusion about the greatness their product - is entirely expected and is not convincing. If you made a product, would you say:
“my product is much worse than the competition”
“my product is absolutely average, it is in no way better than the competition”
“my product is the best, and the competition is
!”
From my own side I would add that:
I didn’t find their demo impressive at all, in fact it ran significantly worse than what you get in three.js. To me that’s mind-blowing, you have this way faster API, and you can’t even make your demo run well enough to convince me?
WebGPU
rendering has been in development at three.js since as pretty much the point when
WebGPU
standard was announced. It has had a lot of development put into it already over the past years.
I can show you a horrible piece of software and proclaim “it is amazing, look, it can do X!” and depending on how impressed and cool I sound as well as how poorly you understand the subject matter - you will either be impressed or not.
You can sell water to the fish, or you may fail to sell food to the starving. It’s called “marketing”.
So far, it seems that Orillusion guys are good at that - marketing. Good for them I say, nothing wrong with building a business.
If they are impressed with their own technology - that’s also great, people work better when they are motivated and believing that your work is great is a nice motivator.
Usnul:
I didn’t find their demo impressive at all, in fact it ran significantly worse than what you get in three.js
unfortunately thats impossible since their demo does use three.js
I understand that you like to be contrarian, me too in fact
What I mean is not their “engine”, but their demo. What engine it’s built on top of is irrelevant really. If you know three.js well enough, and you use instancing properly - you can make a demo that looks the same, but runs way better. That’s my point. Say they do use three.js, they try to convince me that I should buy (or use) their product - they failed to do so, because their demo fails to convince me of any performance benefits even before I take a look at their implementation (which may or may not be, actually, three.js).
Here’s what I see as well when I inspect their demo page:
image
845×500 30 KB
But to me that’s not 100% proof that they do or don’t use three.js for rendering. All it tells me is that it’s included. I would venture a safe guess that they do use three.js geometry abstraction and math code as well, things like
Vector3
,
Matrix4
etc. but I do not want to assume whether or not they actually use
WebGLRenderer
. I didn’t read the code, so I just don’t know
That being said, throwing shade on
three.js
whilst using it is not a good look - that’s true.
ah, that is something I did not consider. Occam razor made me think that if three.js is there, so the simplest and funniest explanation must be true. however, they do, in fact, seem to have their own rendering code:
image
932×754 45.4 KB
Well, I also think their views are a bit biased, even though they are a Chinese company and I am from China.
Their code has not been officially open sourced, so we don’t know the details yet.
I’m learning WebGPU and I’m pretty confident with Three.js.
I originally wanted to learn more about Three.js’ future plans for WebGPU, but I didn’t expect everyone to focus on criticizing the company.
Sorry.
puxiao:
Because the engine architectures of Three.js and Babylon.js are both designed for WebGL
Three.js architecture was not designed for WebGL. It was not designed for any specific backend. First it was Flash, then it was Canvas 2D, then WebGL, and now we’re doing the WebGPU backend.
Google translation is not accurate enough.
This sentence comes from a Chinese classic in 278 ad. The original meaning is that when a person with courage is bitten by a poisonous snake, he can immediately cut off his wrist to prevent the poison from spreading.
Be decisive and give up something in exchange for something more important.
very impressive reply, the guys who stand high level and concentrate on tech itself not business make great thing.
As a Chinese develpoer, orillusion make me embarrassing.
Hope all good project go well.
Thanks to all open source contributor.
Don’t be, same happens everywhere
There’s plenty of great software coming out of China in recent years, and there are plenty cool open source projects from China too. Three.js has people from US, Germany, Spain, France, Russia, China, Japan and UK working on it to name a few countries.
Also competition is good, three.js benefits from existence of Babylon.js and vice-versa for example. Different projects get to try out doing things different ways, and others get to learn from that. Orillusion guys benefited from three.js, and who knows, maybe 1-2 years from now they will have something impressive for all of us to learn from as well.
I agree with you.
The key point that makes me embarrassed is the strong commercial atmosphere, like a group of people relying on their existing social achievements, and they start working after pulling in investment. It’s not that this is not good, but as a developer, I instinctively smell something bad. Maybe it will succeed, but I stick to my cognition
WebGPU is a new technology and provides new perspectives to the 3D community. However, a mere utilization of WebGPU does not necessarily mean these perspectives will be realized to their full potential. I admire the enthusiasm of Orillusion and I wish them all the best, but let us not forget the beautiful Latin saying:
acta, non verba.