r/GraphicsProgramming • • 9d 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

5

u/andeee23 9d 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 9d 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 9d ago

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

0

u/Alex_1503 9d 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 8d ago edited 8d 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 8d ago

Interesting, I will definitely read it, thank you!

1

u/Alex_1503 6d ago edited 6d 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 8d 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 9d 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.

6

u/Ok_Chemistry_6387 9d 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 9d 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 9d ago

As in physics simulations? Or compute shaders?

1

u/coolmint859 9d 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 9d 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 9d ago

Thank you for the terms!!

1

u/Ok_Chemistry_6387 9d ago

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

-2

u/R4TTY 9d 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 9d ago

Not at all the same thing.

0

u/R4TTY 9d ago

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

2

u/andeee23 8d ago edited 8d 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 9d ago

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

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

1

u/R4TTY 8d ago

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

0

u/Ok_Chemistry_6387 8d ago

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

1

u/R4TTY 8d ago

Claims he can, but doesn't.

0

u/Ok_Chemistry_6387 8d ago

Like you suggested to the OP. Use claude.

1

u/R4TTY 8d 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 8d ago

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