Jump to content

Ultra Engine testing


Josh
 Share

Recommended Posts

Updated the app and did a clean install.  No error messages in the download process, still no contents in the library folder and its the same with the include folder which is not there at all.  Running the patch.bat manually still fixes both those issues.  Updated my graphics driver and still have the Vulkan error in debug mode.  Looked up Vulkan info on my pc and it says I have v1.3.

Link to comment
Share on other sites

If you have the manual install option enabled, the application does not run the bat files at all, so nothing will be installed until you run them yourself. Otherwise the application runs these automatically after the download is complete.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

It looks like validation layers are stored in the Vulkan SDK. Probably the SDK version you have doesn't have complete support for 1.3. I remember some warnings about this when 1.3 was first released.

 

  • Like 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

9 hours ago, Josh said:

@SpiderPigDo you have the Vulkan SDK from LunarG  installed? What version?

Ah I only had the 1.2 SDK installed.  1.3 fixed the validation issue.  But now I'm getting this error in debug mode... does the screenshot give enough info?  Release works fine still.

Error_2.thumb.png.cc042c8c5aa1642b63dff30c68b92b0d.png

9 hours ago, Josh said:

If you have the manual install option enabled, the application does not run the bat files at all, so nothing will be installed until you run them yourself. Otherwise the application runs these automatically after the download is complete.

The last times I've installed I've not had manual install enabled.  I tried it once to see if it worked and it did, but since then I've let it do things automatically to find the problem.  It is installing folders and files to the client directory such as Tools, Templates and Plugin SDK.  It is only making a folder called Library but it has no contents.  It doesn't make a folder called Include.

Going to ProgramData\\UltraEngine and running patch.bat after the auto install fixes all that though.  Perhaps the scripts are running before things are downloaded all the way?  I notice the command prompt pop up quickly a few times during the download.

Link to comment
Share on other sites

The legacy plugin doesn't seem to work. (Texture index out of range.)

	auto ball = CreateSphere(m_pWorld, 0.5, 32);
	auto mat = LoadMaterial("Materials/Developer/defaultmeshface.mat");
	if (mat) ball->SetMaterial(mat);

NVM, seems to happen when I load json materials too...

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Link to comment
Share on other sites

11 hours ago, SpiderPig said:

Ah I only had the 1.2 SDK installed.  1.3 fixed the validation issue.  But now I'm getting this error in debug mode... does the screenshot give enough info?  Release works fine still.

That's an error in the STL vector code doing exactly what it says, a vector is being accessed with an index that it out of the range of the vector. I do not know what code you are running or what file (outside of vector.h) the error is occurring on, so I can't tell anything else about it.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

We could try remote debugging if you're willing to. You would need to download and install the remote debugging tools for VS C++:
https://visualstudio.microsoft.com/downloads/#remote-tools-for-visual-studio-2022

I have never used this before.

https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging-cpp?view=vs-2022

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Could someone explain how to get started with this.

I've been trying for a week with little success.

If I use the Client App, I have the same problem that Yue has in that trying to create a project results in a "Application not installed" error.

Do I even need the App?

I notice that only 2 people have downloaded the latest version but several people are using Ultra Engine.

I have tried using the SDK thru Steam. I use the Game template.sln  but end up with over 50 errors when I try and run it.

Any help would be gratefully accepted.

 

 

Link to comment
Share on other sites

Anyone can install the client app. It's an installer / updater. However, your account has to have an active subscription for it to install the SDK. So yes, it is working well. :)

There is an old beta on Steam some people have, and it is dead / defunct. Maybe I will use that app ID someday for something else, but Ultra Engine isn't going to be distributed on Steam.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

4 hours ago, Josh said:

That's an error in the STL vector code doing exactly what it says, a vector is being accessed with an index that it out of the range of the vector. I do not know what code you are running or what file (outside of vector.h) the error is occurring on, so I can't tell anything else about it.

I couldn't seem to use Load material function at all. I tried loading a material formatted like one from the old SDK and it didn't work.

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Link to comment
Share on other sites

Got window switching to work without disrupting the world render. The black screens are due to OBS and does not actually happen. Right now, I'm just using WINDOW_CENTER as the style.

//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
void GraphicsWindow::Build(const GameWindowParams& info)
{
	if (m_pWindow != NULL)
	{
		//m_pWindow->Close();
		m_pFramebuffer = NULL;
		m_pWindow = NULL;
		m_pDisplay = NULL;
	}

	auto displays = UltraEngine::GetDisplays();
	m_pDisplay = displays[info.displayindex];

	UltraEngine::WString title = Foundation::GetAppName();
	if (title.empty()) title = "Ultra Engine";

	m_pWindow = UltraEngine::CreateWindow(Foundation::GetAppName(), 0, 0, info.size.x * static_cast<int>(m_pDisplay->scale), info.size.y * static_cast<int>(m_pDisplay->scale), m_pDisplay, info.style);
	m_pFramebuffer = UltraEngine::CreateFramebuffer(m_pWindow);
	ListenEvent(UltraEngine::EVENT_WINDOWCLOSE, m_pWindow, EventCallbackStopGameWindow, Self());

	m_hParams =
	{
		info.displayindex,
		info.size,
		info.style
	};
}

 

  • Like 3

Cyclone - Ultra Game System - Component PreprocessorTex2TGA - Darkness Awaits Template (Leadwerks)

If you like my work, consider supporting me on Patreon!

Link to comment
Share on other sites

That looks really nice :)

small question: How to create a cubemap with custom mipmaps?

vector<shared_ptr<Pixmap>> mipchain;

	for (int i = 0; i < 6; i++)
	{
		iVec2 size = iVec2(256, 256);
		auto pixmap = CreatePixmap(size, TEXTURE_RGBA32);
		//mipchain.push_back(pixmap);
		
		while (size.x > 1)
		{
			size /= 2;
			pixmap = CreatePixmap(size, TEXTURE_RGBA32);
			mipchain.push_back(pixmap);
		}
	}

		auto envSky = CreateTexture(TEXTURE_CUBE, 256, 256, TEXTURE_RGBA32, mipchain
		, 6, TEXTURE_STORAGE | TEXTURE_MIPMAPS | TEXTURE_GENMIPMAPS , TEXTUREFILTER_LINEAR, 0);

		envSky->BuildMipmaps();

I always get "mipmap incorrect size" error. I have tried it with just a single mipchain (just for one face), multiple like in this sample and various size limits.

 

  • Intel® Core™ i7-8550U @ 1.80 Ghz 
  • 16GB RAM 
  • INTEL UHD Graphics 620
  • Windows 10 Pro 64-Bit-Version
Link to comment
Share on other sites

15 minutes ago, klepto2 said:

small question: How to create a cubemap with custom mipmaps?

The CreateTexture command currently does not handle this. I will fix it. Your mipchain is already in the correct order.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Another small bug report:

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 world
    auto world = CreateWorld();

    //Create a framebuffer
    auto framebuffer = CreateFramebuffer(window);

    //Create a camera
    auto camera = CreateCamera(world);
    camera->SetClearColor(0.125);
    camera->SetFOV(70);
    camera->SetPosition(0, 0, -3);
    
    //Create a light
    auto light = CreateLight(world, LIGHT_DIRECTIONAL);
    light->SetRotation(35, 45, 0);

    //Create a box
    auto box = CreateBox(world);

    //Entity component system
    auto actor = CreateActor(box);
    auto component = actor->AddComponent<Mover>();
    component->rotation.y = 45;

    auto mtl = CreateMaterial();
    mtl->SetRoughness(0.25);
    mtl->SetMetalness(0.5);
    box->SetMaterial(mtl);

    auto specmap = LoadTexture("Materials/Environment/Storm/specular.dds");
    auto diffmap = LoadTexture("Materials/Environment/Storm/diffuse.dds");
    // error INVALID_IMAGE_LAYOUT --> IMAGE_LAYOUT_UNDEFINED
    // auto envSky = CreateTexture(TEXTURE_CUBE, 256, 256, TEXTURE_RGBA, {}, 6, TEXTURE_DEFAULT , TEXTUREFILTER_LINEAR, 0); 

    // THIS ONE SEEMS TO WORK, AT LEAST NO ERROR
    auto envSky = CreateTexture(TEXTURE_CUBE, 256, 256, TEXTURE_RGBA, {}, 6, TEXTURE_STORAGE, TEXTUREFILTER_LINEAR, 0); 

  	//EVEN WITH SET TO envSKY (created Cubemap) the Background is set to specmap instead.
    world->SetEnvironmentMap(envSky, ENVIRONMENTMAP_BACKGROUND);
    world->SetEnvironmentMap(specmap, ENVIRONMENTMAP_SPECULAR);
    world->SetEnvironmentMap(diffmap, ENVIRONMENTMAP_DIFFUSE);

    bool sky = false;

    //Main loop
    while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false)
    {
        if (window->KeyHit(KEY_SPACE))
        {
            sky = !sky;
            world->SetEnvironmentMap(sky ? specmap : envSky, ENVIRONMENTMAP_BACKGROUND);
            world->SetEnvironmentMap(sky ? specmap : envSky, ENVIRONMENTMAP_SPECULAR);
        }

        world->Update();
        world->Render(framebuffer);
    }
    return 0;
}

 

  • Thanks 1
  • Intel® Core™ i7-8550U @ 1.80 Ghz 
  • 16GB RAM 
  • INTEL UHD Graphics 620
  • Windows 10 Pro 64-Bit-Version
Link to comment
Share on other sites

43 minutes ago, reepblue said:

Also, if you set the environment maps to null, there's a split second where the frame buffer will turn purple.

Usually if you see something like that it means the visibility set is storing old information that somehow contradicts some new info sent to the renderer. Nothing for you to do about that, and it is a bug, but that is a type of thing you may see different examples of.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

small progress:

i rendered a dynamic cubemap succesfully. The images are taken from the nvidia nsight, as of the CreateTexture / SetEnvironemnt problem i can't display it in UltraEngine.

sky_cube_1.thumb.PNG.4e234feeae7d185c5e9f5391d609a12a.PNGsky_cube2.thumb.PNG.a76d14f0eac95476e7a68f30cd8f4c9a.PNG

  • Like 2
  • Intel® Core™ i7-8550U @ 1.80 Ghz 
  • 16GB RAM 
  • INTEL UHD Graphics 620
  • Windows 10 Pro 64-Bit-Version
Link to comment
Share on other sites

  • Josh changed the title to Ultra Engine testing
  • Josh locked this topic
Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...