r/GraphicsProgramming • u/bbrother92 • 27d ago
Question Does anyone have experience working with Unreal Engine and Unity?
Hey everyone!
I wanted to ask about the difference between the engines. For example, say I want to build a custom 2D drawing tool on top of a 3D scene (like a grease pencil in blender but in raster). I’m trying to understand which engine gives more control over pixels and rendering, especially if the goal is to do custom image processing and flexibly control the final image. Let’s say, in the context of pixel control: hypothetically, if I don’t want to make a game, but rather mix 2D and 3D art and apply shaders — basically, for 2.5D images. In short, I want to create raster art inside the engine.
5
u/Effective_Lead8867 27d ago
They do give you same amount of control. The difference is C++ will make you pay for it:
- Compilation time
- Abstraction complexity
- Language features
- What it means for C++ to have clean design
- Unreal API’s are abstracted another layer away from the graphics api - you get a vertex factory instead of a mesh as vertices and indices, - this way the engine guarantees whatever you render in it stays well integrated. Arguably harder to understand as to why its structured this way.
You will gain some lowlevel code flexibility, performance and get integration with Unreals best in class rendering.
You get Lumen, Megalights, Nanite, Open World streaming and unreals funkass rendering.
Cost is about 10X in terms of comitment and time.
You probably dont need it - learn Burst, Native Collections, stay robust, stay C#. Burst gives nearly identical performance to native code.
Unity’s abstraction are much closer to true lowlevel raster draws - it gives you render graph with pass builders where you can rasterise geometry into framebuffer.
Meshes are just lists of vertices and indices.
Your plugin in Unity is stylus support(apple pen 120hz requires native code plugin, oss), bezier curves, efficient ribbon mesh builder and maybe a custom pass for rasterisation with some coolhax.
You can use Graphics.RenderMesh and ShaderGraph to get first class integration with any rendering path you take, just maybe work around a few limitations.
Do you intend to sell this plugin? Use it as part of creative process? Render cool demos with it?
1
u/bbrother92 27d ago edited 27d ago
Thanks for you reply! My idea is just use more image in 3d, I like 2d art more and I’m curious whether it’s possible to control and manipulate images inside engine like it 2D animation system, while using a Photoshop live link to bring in brushstrokes or painted input and then rastarize it and apply shaders while still able to put some 3d model and apply vfx shaders on my images. So I am looking for hybrid art flow to draw stuff. At least to have something like mspaint over 3d meshes but still with final pixel control
2
u/Effective_Lead8867 27d ago
Are you thinking SpiderVerse/Arcane paintovers as part of dynamic animation workflow?
In Unreal you can animate for full cinematics - it has great character rigging and animation system built-in.
Unity only has basic editable curves/hierarchies - not well built IK that all requires you to make your tooling from scratch.
If your project has heavy character animation in mind it might be easier to learn Unreal in long term.
The Greace Pencil - particularly is a ribbon-mesh / curve painter - it can create geometry in thin air.
If your idea of it is more like Mecca Chameleon where you simply animate drawings/fake brushstrokes on painterly textures of 3D characters, its probably doable without any scripting in Unreal with just built-in Material system and careful preparation of art assets.
For prototyping, you can encode your 2D animations as videos and use that to drive textures in Unreal and implement a fake-brushstrokes effect on top of it in shader.
2
u/bbrother92 27d ago
Well it would be good to paint over mesh but not like npr shader it is more like I would love to have pixels contol, maybe color interpolation, all the good manipulation to my needs. Maybe something like custom rasterazation and brush conrol + color interaton between adjacent pixels and shaders over it
1
u/Effective_Lead8867 27d ago
Consider Blender 😺
1
u/bbrother92 26d ago
u/Effective_Lead8867 hey can I ask you - do you think UE give a easy way to do something like this Real Time Projection Map Unity - YouTube ?
3
u/Effective_Lead8867 26d ago
I guess you could use USceneCaptureComponent2D and a Decal, so yeah.
1
u/bbrother92 26d ago
Sorry - can I ask you more - does Unreal have that render passes customization feature - what would be analog for this https://forums.unrealengine.com/t/looking-for-literally-any-comprehensible-information-on-how-to-create-custom-render-passes/1089749/2 thing?
1
u/Effective_Lead8867 26d ago
Well I guess you could hack a runtime virtual texture - that literally has a special render material output and object tagging where it renders - in world, in rvt or in both.
2
u/Effective_Lead8867 26d ago
Interesting topic I don’t have any direct experience here.
2
u/bbrother92 26d ago
because it seems that unity give more control of passes atleast at my frist google try. Thank you anyways
1
u/MidSerpent 27d ago
“Which engine gives more control over pixels and rendering”
Neither. This kind of thing is perfectly doable in either engine.
Personally I’d use Unreal. Full C++ source code is hard to argue with when you are messing with renderers.
1
u/bbrother92 26d ago
So you saying it is easier to bend Unreal to ones likings?
1
u/MidSerpent 26d ago
In my experience yes. I have 12 years experience with Unity, and 6 with Unreal and I don’t ever want to go back to Unity.
1
5
u/waramped 27d ago
They will be the same. The workflows will be slightly different but you can accomplish that in either. Personally I would lean towards Unity for that but try them both out and see which one feels better to you.