Category Archives: 3D

WebGPU demos

The dust has yet to settle on WebGL2 and we’re already looking at a replacement…
Apple is pushing for WebGPU, which is modelled after Metal, their graphics library for iOS and macOS.

Hello World Triangle

Here’s another view about what’s wrong with WebGL/WebGL2.

Source: WebGPU demos

[github] kosua20/herebedragons

Someone implemented the same 3D scene using different API/frameworks. Interesting from a learning point of view. But as someone commented in HN, some implementations could be made to look the same given enough effort.

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.

[github] kosua20/herebedragons

Turning 8-Bit Sprites into Printable 3D Models | 0 FPS

This is a really cool idea – a good mashup of old retro game artwork and 3D printing. The author of this website has written an editor that takes in 8-bit sprites from various directions, and produce a working file that can be used for 3D printing.

There’s just something tangible about physical objects that makes them so appealing.

Source: Turning 8-Bit Sprites into Printable 3D Models | 0 FPS

PS: the online editor appears to be down at the moment

What DirectX 12 means for gamers and developers – PC Gamer

Abstraction is good for developers, right? Why else would you be programming in high-level languages like C++, Go, Python instead of assembly language? Well, it turns out the situation is not so straightforward for game programming.

In terms of graphics programming, after years of high-level graphics API, the trend has been to go as close to metal as possible (Apple’s Metal, OpenGL reborned as Vulkan, and now DX12). This article does a very good explanation of why this is happening.

In a way, this is a manifestation of the break-down of Moore’s law – at least in terms of clock-speed improvements. Games are among the most demanding type of applications in terms of performance, and for years we have been riding along the wave of “free” performance thanks to Moore’s law. In case you haven’t noticed, the party has ended. That, combined with increasing performance of the GPU, means we can no longer get free performance from CPU alone. Someone has to do the work to manage the GPU+CPU dichotomy and ensure that the “pipeline is full” so as to speak. Thankfully game engines are now taking on that role, but the graphics API needs to allow them to have full access to the low level capabilities.

Hint: it’s exciting. Expert Peter “Durante” Thoman takes a technical deep dive into the promising potential of DX12.

Source: What DirectX 12 means for gamers and developers – PC Gamer

A Brief History of COLLADA

Some of you might know that COLLADA was not supposed to be used as an end-format in itself (like say OBJ) but more as a interchange format. To quote Wikipedia,

COLLADA was originally intended as an intermediate format for transporting data from one digital content creation (DCC) tool to another application.

It was meant to solve the difficulty of using digital assets across different tools. For example, if I scanned a 3D point cloud and processed it in Geomagic, I want to be able to use the result in say, 3DS Max for further work. 3DS Max obviously cannot open Geomagic files, so most of the time, the DCC artist have to figure out the intermediate format that’s supported by both software, and use that as a mid-point to bridge the gap. That is, instead of A->B, you go through an intermediary X, via A->X->B.

While it sounds logical, it usually doesn’t work in practice. First of all, 3D formats are not like image formats, which are fairly standard except for headers, compression etc. You can get pretty good results in image format conversions. Even though you might get some loss in image quality, the result is usually fairly acceptable.

Once you go into 3D, lo and behold, the problem size explodes. There are many types of mathematical models for 3D representation – polygonal, point cloud, parametric, volumetric, etc. Even within one representation you have tons of parameters. Each software chooses how it wants to use and interprets those parameters, and it varies widely from software to software. The result is that moving digital assets across software is a pain. In fact companies exist to sooth those pain (Right Hemisphere, Okino).

Sony Computer Entertainment, being a game company, must have faced a lot of such issues. The solution it created was COLLADA, to fill the missing X that plagues the industry. In 2004, it generously donated COLLADA to the community. The competing format back in the days was X3D, the successor to VRML. X3D was mainly driven by the academia, and did not have the kind of backing COLLADA has. It happens that Google Earth was looking to introduce support for 3D models around that time. Previously, it could only support imagery and terrain data. By a stroke of luck COLLADA was adopted as the native 3D format – even though it’s actually an interchange format. SketchUp soon followed, in a somewhat clever move – it was acquired by Google shortly after. By then, Autodesk and the rest of the big boys were on-board and the rest, as they say, is history.