Jump to content


  • Content Count

  • Joined

  • Last visited

Blog Comments posted by Josh

  1. 5 minutes ago, reepblue said:

    Maybe you can modify EmitSound to have a parameter so it'll do the copying of the Speaker for you. IDK I recall that "feature" making me upset using Leadwerks as I didn't expect it to auto release my objects 

    That's the wonderful thing about smart pointers, problems like this go away.

  2. Although looking at their discussion, I would NOT use this for cascaded shadow mapping. The near stage will have far fewer objects in view than the further ones, and the extra geometry would have a much bigger impact than the savings of multiview rendering.

  3. 26 minutes ago, Ma-Shell said:

    Are you using some fancy new technology like MVR or one of its predecessors for the single pass point-lights? If so, have you also evaluated, what happens on older GPUs?

    Yes, it is core in Vulkan 1.1, with a minimum of six passes supported.

  4. It also seems like the startup speed is much much faster now. I figured out that vkCreateInstance() and the vkGetExtensions() command (I can't remember the name right now) each take about one second, and the startup time total is about two seconds and you're in the game.

    If you were loading a larger scene that took more time to load, you could kick off the rendering thread by calling World::Render() immediately after it is created, before the scene is loaded. This would cause the Vulkan initialization to be processed on the rendering thread while the scene is loading on the main thread. This would save the ~2 seconds of rendering initialization time, because it seems like the rest is pretty much instantaneous.

    • Like 3

  5. @Thirsty Panther Thank you for the comments. Regarding game content, what I have seen is that DLCs sell extremely well but it is very hard to get people to buy things through a new store. It even seems like people are more loyal to stores online than they are to the actual brick and mortar store they will shop at! So in the future I will probably focus on official DLC-type model packs and just try to improve the quality and amount of content offered of those, since they actually do sell well.

    I plan to release paid updates every 12-18 months. I don't plan on ever going back and building a new foundation for our technology, and from here on out I want continuous forward progression, not any rewrites.

    I definitely want to keep giving game developers what they want, because you guys give all the useful feedback. Without that, I can't build good software.

    • Like 2

  6. I was thinking about having the Enable functions accept a Boolean because it makes for fewer commands and sometimes the programming is a little easier.

    Enable(false) would disable it.

    Enable(true) or Enable() would enable it.

    Any thoughts on this?

  7. During implementing of Z-sorting for transparency, I found that Vulkan might actually preserve the rasterization order in render passes, which gives me reason to rethink this.


    Cameras in Turbo Engine always calculate and send an orthographic matrix to the GPU so it might be better to render 2D primitives simply by switching their shader family to a set of shaders that uses the orthographic matrix instead. In any case, I certainly have learned a lot more about Vulkan in the last couple of days.

    • Like 2

  8. 14 hours ago, Ma-Shell said:

    What does the code for differently coloured letters look like? Do you call CreateText once for every letter and then position them manually or is there a nicer way?

    The text is a model, so you can just modify the vertex colors:

    	auto text = CreateText(foreground, font, L"Hello, how are you today?\nI am fine.", 72, TEXT_CENTER);
    	for (int v = 0; v < text->lods[0]->meshes[0]->vertices.size() / 4; ++v)
    		int r = Random(0, 255);
    		int g = Random(0, 255);
    		int b = Random(0, 255);
    		for (int n = 0; n < 4; ++n)
    			text->lods[0]->meshes[0]->vertices[v * 4 + n].color[0] = r;
    			text->lods[0]->meshes[0]->vertices[v * 4 + n].color[1] = g;
    			text->lods[0]->meshes[0]->vertices[v * 4 + n].color[2] = b;


    • Thanks 1
  • Create New...