Show more

I'm not kidding. Due to differences between the OpenGL ES and WebGL spec processes, crucial definitions of floating point texture support were left out of the extension spec by mistake, and had to be monkey patched with weird followup extensions. I've read followup threads in the WebGL mailing lists, and people are cursing each other out over this.

At least they sorted all this out in WebGL 2.0, so, we can just wait for that to roll out, right?

Show thread

There are two routes to enable floating point textures in WebGL 1: single precision float, and half precision float. While half float textures are widely supported, float textures aren't. Why is this?

Reason #1: mobile device hardware has wider support for half floats. They're lower precision, but they save tons of space.

Reason #2: they FUCKED UP the rollout. 😳 By mistake, the float textures extension spec was written too ambiguously, so they patched it with other specs and made a mess.

Show thread

The difference between a byte and a single precision float is huge. You can represent almost any number you can think of as a float.

Wherease a byte can only store a WHOLE NUMBER between 0 and 255.

Screw that, let's go with the floats, right? Support for floating point textures is immensely popular on graphics hardware nowadays, and it's reasonable to expect it in WebGL too.

But even the oldest WebGL/OpenGL extensions are *optional*— and if a browser vendor doesn't like one, it's out.

Show thread

So, let's say you want to apply special effects to your graphics, like a badass green glow. Like most digital graphics techniques, special effects boil down to doing math on pixels. And if you want your special effects to look good, you need your pixels to store precise information.

By default, a pixel in a WebGL texture is just four bytes— one byte per channel of RGBA. That's a non-starter.

But WebGL has optional extensions for textures that are four single or half precision floats per pixel!

Show thread

When I first made this project in '18, I tested it in a few Mac browsers and then set it aside. My recent switch to Android got me checking my projects in various browsers across devices, and I realized something was going wrong in Mobile Safari.

This might surprise uh NO ONE, but even in a Khronos spec based on a 16 year old industry standard, there is enough wiggle room for human error to creep in and cause browser implementation differences. In this case, it's due to floating point textures.

Show thread

WebGL is not only verbose, it's also designed the way people thought graphics ought to be drawn twenty years ago; using it is hard! So most people who make 3D web content build on top of a library, like ThreeJS. I did! Zero shame in it, it's perfectly sensible to slingshot your project past the "wtf is gltexsubimage2d" phase of 3D web graphics, and into the cool zone.

For instance, my Matrix demo was originally a ThreeJS project. But as we'll soon see, it's changed quite a bit, and so have I 😁

Show thread

All right, folks, how about I follow through on what I said a month ago, and post something about ?

For the uninitiated, WebGL is a standard web API for drawing graphics with your video card. WebGL 1.0 is supposed to be a JavaScript-friendly, web-safe adaptation of OpenGL ES 2, a similar API from 2003 that was made for embedded systems— devices with limited hardware and capabilities.

rezmason boosted

Hi friends, the small (15 ppl) startup I work at is hiring a JS developer and will be hiring for other eng positions soon. I feel lucky to be working here. Ping me if u have questions!

RTs appreciated <3

a few snippets from our open-source handbook:

Merv Pro Tip: If you forget which rooms you can hashtag, just type "" in the search bar and there they all are

rezmason boosted

Updated the written lore for Nowhere as well now. This one was initially a lot worse than Omniontiac, eesh.

rezmason boosted

Hey Merveilles,

Does anyone have any tips on getting started doing contract work in the graphic design / webstuff space? My wife and I are looking into taking contract work, and we're entirely new to this space.

We just went through the trouble of making a Fiverr account, and so far using the site has been a travesty. I feel like I'm barking up the wrong tree.

rezmason boosted

Hello there, I'm REZ.

I'm a demoscener since 1993, actually member of a group named RAZOR 1911 as coder.

I'm still living in the 80's, that's probably why I love so much big pixels and lowfi musics!

One of my latest work was a software 3D engine running on the lovely PICO-8 fantasy console:

rezmason boosted
rezmason boosted

If you're an omnivore like me but want to try veganism for a short period, might I recommend visiting Philadelphia's Mütter Museum?

I've just spent thirty minutes starting back at pickled anatomical anomalies and wax reproductions of the diseases of the face, and now I'm so turned off by meat that I'm contemplating rewriting my website in C99.

Happy 02020 CE, Merveilles!

Sorry for not being online recently, I've gotten sidetracked. My mobile OS (and browser) switch led me down the frustrating rabbit hole of WebGL extension support on mobile devices.

WebGL is actually in a bizarre state nowadays. Over the holidays I've struggled to figure out how I'll convey what I've learned. Watch this space!

rezmason boosted

i finally got a USB interface Zip drive today and i can proudly say that the iPad Pro supports it.

RIP, Josephine.

You taught your family a very personal mode of expressing love; your personality shone through all the things you made, did and shared. I hope to keep you shining through me.

rezmason boosted
Show more

Merveilles is a community project aimed at the establishment of new ways of speaking, seeing and organizing information — A culture that seeks augmentation through the arts of engineering and design. A warm welcome to any like-minded people who feel these ideals resonate with them.