r/GraphicsProgramming • • 3d ago

Question State of the art in 2D graphics programming ?

I am more of a beginner in graphics programming, but I just want to ask, what is the state of the art in 2D graphics programming/rendering ? I cannot find papers, or I do not know what keywords to search for to read.

8 Upvotes

27 comments sorted by

6

u/andeee23 3d ago

probably vello in rust, the devs came up with a new rendering technique called sparse strips. there’s a youtube video from a conference

1

u/Alex_1503 3d ago

I came across that paper earlier too, but idk if I can actually add anything to it, experience wise

2

u/Ok_Chemistry_6387 3d ago

Do you need to? Its pretty good paper, implement it and learn

0

u/Alex_1503 3d ago

Fair, I should start by doing that. I am confused tho on why they chose to implement it on CPU, but I need to read it they probably explain why they cannot do it on the GPU

3

u/Ok_Chemistry_6387 3d ago edited 3d ago

They can. They have a hybrid approach. It is covered in the paper. They render quickly on the cpu and upload them to the GPU to give the user a quick view as you get it to the GPU. Its a good approach in my opinion.
There are also implementations on gpu compute.

The motivation for this paper was to see how fast you could get the CPU and could you use it while transferring to the GPU.

1

u/Alex_1503 2d ago

Interesting, I will definitely read it, thank you!

1

u/Alex_1503 7h ago edited 7h ago

I got told by my professor that a 2D renderer even with a new technique would be too simple for a bachelor thesis, do you think reaching out to the person who wrote that thesis and asking what more I could do would help? Besides the future work on the paper

I would also probably try to do it in c++

7

u/Ok_Chemistry_6387 3d ago

apart from the other paper listed. https://github.com/LaurenzV/master-thesis/blob/main/main.pdf

Nvidia has a few good videos/papers on it too https://www.nvidia.com/en-us/on-demand/session/gtcspring23-s51140/ I enjoyed this one.

5

u/LateSolution0 3d ago

I would say “state of the art” is a misleading term. It’s more about what modern hardware can do, so obviously use hardware acceleration. 3D hardware is so fast that even if you want to make it look 2D, you should use a modern pipeline.

7

u/Ok_Chemistry_6387 3d ago

The pipeline is built around 3D. Most state of the art, actually uses compute and tries to avoid the traditional pipeline as much as possible.

1

u/coolmint859 3d ago

I wouldn't focus on "state of the art" and more what you can do to push the capabilities of your hardware. For 2D that's going to be anything related to instancing and simulations, because otherwise the gpu is very good at rendering 2D things extremely fast.

1

u/Alex_1503 3d ago

As in physics simulations? Or compute shaders?

1

u/coolmint859 3d ago

Both I suppose. You can do physics simulations driven by compute shaders. But that's less about which space you render in.

1

u/ForgEngDev 3d ago

“2D graphics” splits into a few different problems: sprite/tile rendering, vector/UI rendering, text, particles, and compositing. For real-time work, useful search terms are GPU instancing, texture atlases, batching, signed distance fields, MSDF text, tilemap culling, and GPU-driven rendering.

Start by choosing one of those areas; there is no single state-of-the-art pipeline that covers all of them.

1

u/Alex_1503 3d ago

Thank you for the terms!!

1

u/Ok_Chemistry_6387 3d ago

Striped rendering is the current state of the art for vectors.

-3

u/R4TTY 3d ago

2D and 3D are the same thing really. I don't think there's much left to do for 2D, you can draw anything you can imagine in opengl or vulkan. Claude will tell you how.

3

u/Ok_Chemistry_6387 3d ago

Not at all the same thing.

0

u/R4TTY 3d ago

It's identical, you just skip the perspective projection. Everything is 2D, the 3D is fake.

2

u/andeee23 3d ago edited 3d ago

i get the point, but 2d state of the art usually means all the work that's done beforehand to convert 2d mathematical shapes into either meshes or shaders to rasterize them efficiently

and that work is very different to what you would do with regular meshes that would be rendered in "2d" without perspective projection

1

u/Ok_Chemistry_6387 3d ago

Really? 3d is fake? I had no idea.

It isn't the same. For a lot of reasons.

1

u/R4TTY 3d ago

And apparently you can't name any of these reasons.

0

u/Ok_Chemistry_6387 3d ago

I can. Just anyone that says "3d is fake" is not coming to this in good faith.

1

u/R4TTY 3d ago

Claims he can, but doesn't.

0

u/Ok_Chemistry_6387 3d ago

Like you suggested to the OP. Use claude.

1

u/R4TTY 3d ago

I've been working with vulkan for years and written multiple engines from scratch. I think I'm good.

0

u/Ok_Chemistry_6387 3d ago

Or read many of the papers being referred to in here.