# Creating 3D modeling app with UE4?

**URL:** <https://forums.unrealengine.com/t/creating-3d-modeling-app-with-ue4/283563>\
**Category:** Programming & Scripting\
**Tags:** unreal-engine\
**Created:** [May 17, 2014, 10:51am UTC](https://forums.unrealengine.com/t/creating-3d-modeling-app-with-ue4/283563 "2014-05-17T10:51:00Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [May 18, 2014, 12:51am UTC](https://forums.unrealengine.com/t/creating-3d-modeling-app-with-ue4/283563/4 "2014-05-18T00:51:05Z")

</div>

#My Remake of 3ds Max

**I started remaking 3ds Max in UE4, just for fun.**

\*"  
So more precisely, my two questions are: 1.How suitable UE4 would be for something like that in terms of performance? (let’s say I want to make something like Zbrush’s “dynamesh” feature, if anyone here is familiar with it?)

2.How suitable UE4 would be for something like that in terms of time/effort to make something like that in UE4 vs time/effort to do something like that with pure code from scratch. (keep in mind that I haven’t found a single engine for creating 3D applications so far,"\*

#“It’s VERY VERY POSSIBLE” -Rama

#video

I got as far as dynamically building Torus knots where you can set the exact specifications, and then you can watch it render!

Keep in mind I do the rendering slowly just for fun

**Video on Forum**

> **[\[Video\] The Power & Grace of UE4 C++: Dynamic Rendering of HD Torus Knots...](https://forums.unrealengine.com/showthread.php?2662-Video-The-Power-amp-Grace-of-UE4-C-Dynamic-Rendering-of-HD-Torus-Knots-%28for-fun%29)**
>
> Dear Community, In this video, I am using the awesome power of UE4 C++ to render High Definition Torus Knots…during Gametime! That’s right, the editor was not open! This video was filmed in an independent game instance! I adjust the various...

#uv Mapping and Collision

I later added collision and UV Mapping

 ![6492-dynamicmeshuv.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/f/7/0/f70068efb3287fbf5a3afe78ce3af9951593cd66.jpeg)

#My 3ds Max Progress

I had selecteable triangles, could add and delete vertices, and flip normals and all of that. as you can see in video I had no issues rendering extremely high details meshes using DynamicMesh Builder

#Where to Start

Look up how rendering works in BoxCollisionComponent.cpp or SphereComponent.cpp

For legal reasons I can’t post too much code, but this is the general vicinity of what you want:

```
// ~~~~~~~~~~~~~~
// Scene Proxy
// ~~~~~~~~~~~~~~
FPrimitiveSceneProxy* USculptor::CreateSceneProxy()
{
	class FDraw3DSceneProxy : public FPrimitiveSceneProxy
	{
	public:
		FDraw3DSceneProxy(USculptor* InComponent)
			:	FPrimitiveSceneProxy(InComponent),
				Sculptor(InComponent)
		{
			bWillEverBeLit = false;
		}

		//Draw Dynamic
		virtual void DrawDynamicElements(FPrimitiveDrawInterface* PDI,const FSceneView* View) OVERRIDE
		{
                    //draw to the PDI here!
                }

```

#How To

I created a single actor with a single “Scultpor” component which is my custom version of 3ds max.

That single component renders all the geometry for a single object that is being edited and shaped by the user.

So you are always drawing the PDI of a component that is part of an actor, but you can draw a LOT.

This keeps everything contained, and allows me to create or delete my “Canvas3D” whenever I want, or hide it, or move it, as you see in my video.

#dynamic Mesh Builder

Look up info on dynamic mesh builder in the source code

```
FDynamicMeshBuilder

```

# Creating Static Meshes at Runtime

**Wiki Tutorial:**

> **[A new, community-hosted Unreal Engine Wiki](https://forums.unrealengine.com/t/a-new-community-hosted-unreal-engine-wiki/141494)**
>
> After over a year in maintenance mode, the official Unreal Engine Wiki is now permanently offline. These resources now live on a new community-run Unreal Engine Community Wiki — https://unrealcommunity.wiki/! You will be able to find content from...

To get UVs working you will need to study how dynamic Mesh does it and modify the procedural mesh code accordingly.

I posted about it on the forums and on answerhub several times.

---

_[View the full topic](https://forums.unrealengine.com/t/creating-3d-modeling-app-with-ue4/283563)._
