Jump to content

JMK

Staff
  • Content Count

    16,601
  • Joined

  • Last visited

Community Reputation

8,911 Excellent

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 JMK

  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. JMK

      JMK

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

    3. JMK

      JMK

      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...