-
Posts
24,629 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Downloads
Everything posted by Josh
-
Does the increased memory get released when you resume the time?
-
1.0.3 Recent files and recent folders menus now working.
-
1.0.3 Object categories / object dropdown boxes, Create menu and object bar buttons now work. Only the box object bar button is present since the other brush templates have not been written yet.
-
1.0.3 Terrains save in maps will now have their orientation loaded out of the map correctly.
-
1.0.3 Added timing regulation to the terrain tool strength. The easiest way to test this is to set tessellation to the max quality in the options, then disable it to see the difference, assuming your computer is not super fast.
-
1.0.3 Fixed the behavior of the terrain gizmo.
-
1.0.3 Terrain save/load now implemented in map file format (editor only at this time). This is my list of unfinished things needed before release: Undo system Components in editor Terrain gizmo acting weird Terrain mouse tool overriding required viewport events Brush scaling in 2D viewports Collision type list items in entity properties Terrain tool speed regulation Object template categories Object bar buttons Texture lock Object menu items in Create menu Run game interface Publish game Recent files / folders list Viewport rendering options / modes Navigation mesh objects in editor Group / ungroup Drag / drop change entity hierarchy in scene browser Missing settings in Options dialog Point entity creation tool Display point entity icons in viewports Various GUI glitches
-
1.0.3 Terrain tool sliders and spinners will now respond properly to each other.
-
1.0.3 Added terrain editor gizmo drawing code into the terrain shader. This is the best solution because: A 3D model would require sending the updated vertices each frame, and still would not match the terrain exactly. A decal would require a very high resolution texture, and would still have visible pixels sometimes.
-
1.0.3 Terrain editing is nearly finished. I'm currently using a transparent sphere as the gizmo / indicator. This is not ideal but I think I want to use a decal for this, and decals aren't implemented yet. I'm not sure yet. Saving terrain in the map file format is not supported yet. Everything else shown in the editor should be working, including layer scales, constraints, UV mapping mode, etc. Speed of the terrain sculpting is currently framerate-dependent. I need to do something to regulate this to adjust for rendering time. Terrain API changed a bit. Terrain now has "layers". I did not need to add this for the materials but rather for the UV mapping mode, scale, and constraints. Originally I thought I would store these properties in the material file itself, but having those values hidden away in different files was frustrating. The "mapping scale" feature is removed from materials completely. Differences between Leadwerks and Ultra terrain: Ultra supports up to 256 different materials. Slope and height constraints are only used at the time a material is painted on. If you change the constraints values after that, it will have no effect except on new brush strokes you make. Material layers do not appear in any order. The order of the layers in the list is irrelevant. You just select the layer and start painting, and it will appear. Multiple terrains are supported, and may be positioned, rotated, and scaled. Terrain must be selected for its properties to appear in the side panel under the Terrain tab.
-
This is the code I used to create the terrain gizmo the editor uses: auto terrainwidget = CreateModel(NULL); int sides = 128; float th = 0.5 * 0.1; float x, y, a; int i = 0; CreateModel(NULL)->SetParent(terrainwidget); CreateModel(NULL)->SetParent(terrainwidget); auto mtl = CreateMaterial(); mtl->SetShaderFamily(LoadShaderFamily("Shaders/Unlit.fam")); mtl->SetTexture(LoadTexture(GetPath(PATH_DESKTOP) + "/terraingizmo.dds")); for (int i = 0; i < 2; ++i) { auto mesh = terrainwidget->kids[i]->As<Model>()->AddMesh(); if (i == 1) terrainwidget->kids[i]->SetColor(1, 1, 0, 1); mesh->SetMaterial(mtl); for (int n = 0; n < sides; ++n) { a = float(n) / float(sides) * 360.0f; x = Cos(a); y = Sin(a); mesh->AddVertex(x * (1.0 - float(i) * 0.5), 0, y * (1.0 - float(i) * 0.5), 0, 1, 0, 1, 0); mesh->AddVertex(x * (1.0 - float(i) * 0.5 - th), 0, y * (1.0 - float(i) * 0.5 - th), 0, 1, 0, 0, 0); if (n > 0) { mesh->AddPrimitive(n * 2 + 1, n * 2 + 0, (n - 1) * 2 + 0); mesh->AddPrimitive((n - 1) * 2 + 0, (n - 1) * 2 + 1, n * 2 + 1); if (n == sides - 1) { mesh->AddPrimitive(1, 0, n * 2 + 0); mesh->AddPrimitive(n * 2 + 0, n * 2 + 1, 1); } } } } terrainwidget->Save(GetPath(PATH_DESKTOP) + "/terrain.gltf");
-
-
-
-
Use an STL map instead of iterating through the whole array!
-
The first thing you said. Use ListenEvent to intervept the event as it is emitted.
-
1.0.3 Added Tools > Mirror X, Y, Z functionality.
-
1.0.3 CSG hollow now works. The grid size of the current viewport is used for the thickness.
-
It's not, for this exact reason. It's better to listen for events.
-
-
an 8-bit PNG is pretty useless. You will have severe stair-stepping artifacts. I can add it in, but you won't want to use those.
-
If you do this it will work: //Create terrain auto terrain = CreateTerrain(world, 512); terrain->LoadHeightmap("https://raw.githubusercontent.com/UltraEngine/Documentation/master/Assets/Terrain/512.r16", 100); //terrain->SetScale(1, 100, 1); However, I think I am going to change this behavior....
-
Put the key hit call outside the if statement so it is always called each frame