Live data from Hacker News

Bilinear interpolation on a quadrilateral using Barycentric coordinates

gpuopen.com

31–37 of 37 posts

Re: Bilinear interpolation on a quadrilateral using Barycentric coordinates

#31

Very interesting! This reminds me of how stumped I was learning about UV unwrapping for texturing. Even simple models are difficult to unwrap into easily editable textures. "Why can't I just draw on the model?" Blender has a few plugins these days that make it a lot easier --- one that impressed me was Mio3 UV: https://extensions.blender.org/add-ons/mio3-uv/

You can draw on a model: https://youtu.be/WjS_zNQNVlw

Re: Bilinear interpolation on a quadrilateral using Barycentric coordinates

#32

I am definitely not an expert in 3D graphics... but this looks such an astonishingly simple and effective method, it makes me to question why this wasn't already thought of and picked up? I get that with fixed-pipeline GPUs you do what the hardware and driver make you do, but with the advent of programmable pipelines, you'd though improving stuff like this would be the first things people do? Anyway, gotta run and im…

It's not really that simple, barycentric coordinate access is relatively recent. It's asking the rasterizer for information and transforming that information into barycentric coordinates, and the correspondence of barycentric coordinates to vertices is unstable without further hardware support or further shader trickery. In the case of AMD gpus, it's only RDNA2 and later that have hardware support for stable barycentrics.

And you're right that this has been thought of. There are other approaches for bilinearly interpolating quads that have been historically used, but they require passing extra data through the vertex shader and thus often splitting vertices.

Re: Bilinear interpolation on a quadrilateral using Barycentric coordinates

#33

Earlier quoted context omitted.

I know about the advantages and uniqueness properties of triangles. However, if the article is correct about that artists prefer using quads when editing (I know absolutely nothing about 3D editing, and didn't know that, I thought triangles are universal these days), something is clearly missing from the pipeline if a neatly mapping textures to quads, then converted to triangles ends up messing the interpolation. May…

Modern GPUs - and really GPUs for about 10 years - are stupidly fast when it comes to rasterizing triangles, so artists simply work with quads (and polygons of more than four vertices - when Blender added "n-gons" back in the day many artists rejoiced) and they just subdivide them if they want neater looking interpolation before triangulating them. But a lot of detail nowadays come from geometry anyway. This could ha…

[deleted]

Re: Bilinear interpolation on a quadrilateral using Barycentric coordinates

#34
post #11

Earlier quoted context omitted.

Because there is no reason to not use triangles. Look at prideout's reply in the thread, the argument about having just one normal vector and the fact they can only describe one plane is huge. Unless you want more edge cases to deal with (hehe, pun intended), you're better off sticking to tris.

I know about the advantages and uniqueness properties of triangles. However, if the article is correct about that artists prefer using quads when editing (I know absolutely nothing about 3D editing, and didn't know that, I thought triangles are universal these days), something is clearly missing from the pipeline if a neatly mapping textures to quads, then converted to triangles ends up messing the interpolation. May…

When you unwrap UVs the interpolation issue is taken care of. The UV map accounts for it.

It's only for tessellation like subdivision surfaces where something like this would be nifty That is to say, this is mainly nifty for the DCC tool renderer itself to render slightly faster.

Re: Bilinear interpolation on a quadrilateral using Barycentric coordinates

#35

Earlier quoted context omitted.

Well, technically the API is still available pretty much everywhere (be it directly or via a wrapper library) and most hardware still has support for drawing lines, so it is still easy in current days to do things like this too :-P. I'm using it all the time when i want to draw lines in 3D. (though as far as lines and OpenGL is concerned i remember reading ages ago that not even SGI's implementation had full support…

The API still exists, but in most implementations things like line styles and thickness are no longer supported.

Not sure about line styles but so far i haven't seen any implementation that doesn't support line thickness (though i only use OpenGL on desktop).

Re: Bilinear interpolation on a quadrilateral using Barycentric coordinates

#36
/? Barycentric

From "Bridging coherence optics and classical mechanics: A generic light polarization-entanglement complementary relation" (2023) https://journals.aps.org/prresearch/abstract/10.1103/PhysRev... :

> More surprisingly, through the barycentric coordinate system, optical polarization, entanglement, and their identity relation are shown to be quantitatively associated with the mechanical concepts of center of mass and moment of inertia via the Huygens-Steiner theorem for rigid body rotation. The obtained result bridges coherence wave optics and classical mechanics through the two theories of Huygens.

Phase from second order amplitude FWIU

Post reply on HN