Jump to content

Josh

Staff
  • Content Count

    15,995
  • Joined

  • Last visited

Community Reputation

8,452 Excellent

About Josh

  • Rank
    Advanced Member

Profile Information

  • Gender
    Male
  • Location
    San Francisco, CA

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Single Status Update

See all updates by Josh

  1. Started working on our new zero-overhead renderer for maximum FPS. Very interesting stuff!

    1. Ma-Shell

      Ma-Shell

      Will the new one be based on Vulcan or did you abandon that thought?

    2. Josh

      Josh

      I am going to implement the architecture with the existing OpenGL rendering code and then see if MoltenVK supports everything we need.

    3. Josh

      Josh

      The World::Render() function has been replaced with this. It just iterates through all modified objects, sends the data to the culling thread, and returns. So the entire time of rendering disappears from your game loop:

      void World::Render(shared_ptr<Buffer> buffer)
      {
      	auto gfxdriver = GameEngine::GraphicsDriver();
      	shared_ptr<SharedObject> o;
      	gfxdriver->cullsyncmutex->Lock();
      	gfxdriver->rendertarget = buffer;
      	for (auto it = gfxdriver->modifiedobjects.begin(); it != gfxdriver->modifiedobjects.end(); ++it)
      	{
      		o = (*it).lock();
      		if (o == nullptr) continue;
      		o->Sync();
      	}
      	gfxdriver->cullsyncmutex->Unlock();
      	gfxdriver->modifiedobjects.clear();
      }

       

×
×
  • Create New...