-
Posts
24,625 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Downloads
Everything posted by Josh
-
I added a camera, removed the big light, and added a bright object to make the probe results more visible. Seems to work correctly. Start.zip
-
Maybe there is a shader that needs to be updated?
-
The latest drivers have known problems that have been reported to AMD.
-
Update is available now.
-
-
Can you try installing driver 24.7.1?
-
Do you have an AMD GPU?
-
0.9.8 Brush subdivision now works on non-quad faces. Fixed a problem with picking on brushes. Only editor is updated for now...
-
Yep. It is highly likely this will be fixed in the next full build that goes up. The issue was mentioned at the end of last week's meeting.
-
Question: Is the probe entity the first entity listed in the .ultra file?
-
There are two opposing factors: Static lights don't have to render as much geometry when a shadow is updated, because they store a a shadow map for all the static objects. The static shadow map has to be copied to the dynamic shadow map at the start of the shadow update. In situations where you have a small amount of dynamic geometry and a large amount of static geometry, like a single character walking through a room made up of a lot of polygons, then a static light will perform faster because it only has to render the character to update the shadow. However, that texture copy does incur a cost, and it could be possible in some situations that cost would be greater than the savings you get by skipping the static geometry, even though fewer polygons are being drawn. I don't know if that is the case here. I will test this against 0.9.7 and check to see if they produce the same result.
-
I simplified my example, but the results seem really wrong. #include "UltraEngine.h" #include "ComponentSystem.h" using namespace UltraEngine; int main(int argc, const char* argv[]) { //Get the displays auto displays = GetDisplays(); //Create a window auto window = CreateWindow("Ultra Engine", 0, 0, 1280 * displays[0]->scale, 720 * displays[0]->scale, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR); //Create a framebuffer auto framebuffer = CreateFramebuffer(window); //Create a world auto world = CreateWorld(); //Create a camera auto camera = CreateCamera(world); camera->SetClearColor(0.8); camera->Move(3, 0, -2); camera->SetDebugPhysicsMode(true); camera->AddComponent<CameraControls>(); auto unlitMaterial = CreateMaterial(); auto unlitShader = LoadShaderFamily("Shaders/Unlit.json"); unlitMaterial->SetShaderFamily(unlitShader); int width = 2, height = 1, length = 3; auto model = CreateModel(world); auto mesh = model->AddMesh(); mesh->AddVertex(0, 0, 0); //S mesh->AddVertex(length, -height * 0.5, -width * 0.5);//NW mesh->AddVertex(length, -height * 0.5, width * 0.5);//NE mesh->AddPrimitive(2, 1, 0);//S , NW, NE mesh->AddVertex(length, height * 0.5, -width * 0.5);//NW h mesh->AddVertex(length, height * 0.5, width * 0.5);//NE h mesh->AddPrimitive(0, 3, 4);//S , NW h, NE h mesh->AddPrimitive(0, 1, 3);//left mesh->AddPrimitive(4, 3, 1); //"face" mesh->AddPrimitive(2, 4, 1); //"face" mesh->AddPrimitive(0, 4, 2); //"right" world->SetAmbientLight(1); auto mat = CreateMaterial(); mat->SetTransparent(true); model->SetMaterial(mat); model->SetPosition(0, 0, 0); auto collider = CreateConvexHullCollider(mesh); model->SetCollider(collider); Vec3 targetPos(-1, 0, 0); auto box = CreateBox(world, 0.1f); box->SetPosition(targetPos); auto ball = CreateSphere(world, 0.055); ball->SetColor(1, 0, 0); model->SetPosition(0, 0, 0); model->SetRotation(0, 0, 0); model->SetScale(1, 1, 1); camera->SetDebugPhysicsMode(true); //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { if (window->KeyDown(KEY_RIGHT)) box->Move(0.02, 0, 0); if (window->KeyDown(KEY_LEFT)) box->Move(-0.02, 0, 0); if (window->KeyDown(KEY_UP)) box->Move(0, 0.02, 0); if (window->KeyDown(KEY_DOWN)) box->Move(0, -0.02, 0); targetPos = box->GetPosition(); auto closestpoint = model->GetCollider()->ClosestPoint(targetPos); ball->SetPosition(closestpoint); bool isInside = model->GetCollider()->IntersectsPoint(targetPos); if (isInside) { model->SetColor(0, 0.5, 0, 0.5); } else { model->SetColor(0.5, 0.5, 0.5, 0.5); } world->Update(); world->Render(framebuffer); } return 0; }
-
When using Tools -> Carve or Hollow, Brushes are moved to root node.
Josh replied to beo6's topic in Bug Reports
Fixed! The new brushes will be added to the group the original brush was in. -
0.9.8 Changed the way scene groups are saved. This fixes the problem of copied objects not appearing in the same group as the original. I thought there was an open bug report for this but I cannot find it: https://www.ultraengine.com/community/forum/120-bug-reports/?filter=unsolved_topics Finished the appearance of the left-hand side bar.
-
Hi, although AMD's drivers were very stable until recently, they have introduced some problems in their latest driver updates that affect many applications, including ours. The problem has been reported to AMD and they are working on a fix. In the meantime, I recommend using AMD driver 24.7.1 with Ultra Engine.
-
DirectionalLight::SetShadowCascadeDistance is working correctly now, verified by adjusting the setting in the editor. Light::SetShadowSamples is being removed from the API for performance reasons. Modify the shader Base/Lighting.glsl instead.
-
I added a clamp in the lineartosrgb shader functions to make sure the color values are never less than zero, and now it is fine.