Live data from Hacker News

Here be dragons: the same 3D scene implemented with 10 different 3D APIs

github.com

61–67 of 67 posts

Re: Here be dragons: the same 3D scene implemented with 10 different 3D APIs

#61
post #53

Earlier quoted context omitted.

Unity has a rendering pipeline coded for you, using DirectX or OpenGL, depending on platform and settings.

Isn't the point of this repo to compare the usability of different developer tools?

Not really. The Readme says this:

"This repository contains multiple implementations of the same 3D scene, using different APIs and frameworks on various platforms. The goal is to provide a comparison between multiple rendering methods. This is inherently biased due to the variety of algorithms used and available CPU/GPU configurations, but can hopefully still provide interesting insights on 3D rendering."

It's a mixed bag of APIs, software, hardware and tools, approaching the rendering in very different ways. There's even an offline renderer (Blender Cycles) and a software real time renderer in the repo.

Re: Here be dragons: the same 3D scene implemented with 10 different 3D APIs

#62
post #5

The Vulkan version will really add a lot I think. I would guess most people are most interested in an OpenGL to Vulkan comparison. Similarly (possibly more interesting to people, I don't know?) the DirectX version. Nice comparison.

Shouldn't it be fairly similar to the Metal version, which is basically Apple's Vulkan/Dx12? (IIRC Metal is more between OGL and Vulkan, it does more hand-holding and implicit than Vulkan, but way less than OGL)

Yeah, more or less, but a project this size (small) would really bear those differences out, I think.

In particular, resource binding is very different between Metal and Vulkan. Metal's resource binding is more simple/traditional. Vulkans is... sensible, but substantially more complex.

Caveat: haven't used either professionally, read the code in the repo, or had my morning coffee. I've also never touched Dx12, but I've heard it basically works the same as Vulkan here.

Re: Here be dragons: the same 3D scene implemented with 10 different 3D APIs

#63

I am not an expert in some of these, but I CAN tell you that both GBA and DS can do much better than the author has done here.

Artistically, yes, but I don't think the DS can pump out much more in terms of raw polygonal and texture load.

Re: Here be dragons: the same 3D scene implemented with 10 different 3D APIs

#64
post #11

Very interesting. What's striking is how much better the OpenGL version looks than everything else. Not sure if it's because that was the reference version or if some of the other APIs require more work or the dev is simply unfamiliar with them. The Cycles renderer creates some really cool looking materials on the dragon, but the terrain doesn't look great. The Metal version in particular looks terrible, but then aga…

> Not sure if it's because that was the reference version or if some of the other APIs require more work or the dev is simply unfamiliar with them.

I would say the later, either unfamiliarity with the hardware/software or time constraints because the PS2 is capable of much better than what is shown here.

Re: Here be dragons: the same 3D scene implemented with 10 different 3D APIs

#65
post #61

Earlier quoted context omitted.

Isn't the point of this repo to compare the usability of different developer tools?

Not really. The Readme says this: "This repository contains multiple implementations of the same 3D scene, using different APIs and frameworks on various platforms. The goal is to provide a comparison between multiple rendering methods. This is inherently biased due to the variety of algorithms used and available CPU/GPU configurations, but can hopefully still provide interesting insights on 3D rendering." It's a mix…

> The goal is to provide a comparison between multiple rendering methods.

Well, isn't usability the most important criteria to compare it on?

Re: Here be dragons: the same 3D scene implemented with 10 different 3D APIs

#66
post #55

Earlier quoted context omitted.

If you target WebGL2 you can likely do it without hand modifying the shaders. In a small test I did I just patched the emscripten library_gl.js to do a very simple search and replace of the version string of shaders and stuff just worked. code: https://github.com/greggman/doodles/tree/master/glfw-imgui demo: https://greggman.github.io/doodles/glfw-imgui/out/glfw-imgui... You do have to decide if you want to restructu…

very cool to see ImGui used in webgl!

I think ImGui is amazing but just be aware it's non-English hostile (arabic? thai?).

It can display other languages but uses a static font glpyh texture instead of using a font cache (there are too many characters to use a static texture).

It can't take input from an IME so no CJK input or other IME languages.

Re: Here be dragons: the same 3D scene implemented with 10 different 3D APIs

#67
post #61

Earlier quoted context omitted.

Not really. The Readme says this: "This repository contains multiple implementations of the same 3D scene, using different APIs and frameworks on various platforms. The goal is to provide a comparison between multiple rendering methods. This is inherently biased due to the variety of algorithms used and available CPU/GPU configurations, but can hopefully still provide interesting insights on 3D rendering." It's a mix…

> The goal is to provide a comparison between multiple rendering methods. Well, isn't usability the most important criteria to compare it on?

No, one of these methods takes seconds to minutes for a frame to render. One takes a lot of CPU and a bunch are letting the GPU doing the work. Not to mention that a few examples run och very specific hardware only (PS2, GBA etc).
Post reply on HN