Sign Up

Have an account? Sign In Now

Sign In

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask question.

Forgot Password?

Need An Account, Sign Up Here

You must login to add post.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Passionable Logo Passionable Logo
Sign InSign Up

Passionable

Passionable Navigation

  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • New Questions
  • Trending Questions
  • Must read Questions
  • Hot Questions
Home/ Questions/Q 518
In Process
Alek Richter
  • 0
Alek RichterEnlightened
Asked: October 27, 20212021-10-27T06:07:54+00:00 2021-10-27T06:07:54+00:00

What is the “Use VBOs” setting?

  • 0

In the 14w29b snapshot there is a new option in the “Video Settings” menu called “Use VBOs”:

enter image description here

The snapshot update says that enabling “Vertex Buffer Objects” should increase your FPS by 5% to 10% on average.

I am looking for a simple explanation of what VBOs do visually and how they work.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
    • Report
  • Share
    Share
    • Share on Facebook
    • Share on Twitter
    • Share on LinkedIn
    • Share on WhatsApp

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Alek Richter Enlightened
    2021-10-27T06:08:26+00:00Added an answer on October 27, 2021 at 6:08 am

    The answer provided by Flaunting is correct, but in case anyone is interested why it might be more efficient, here is an explanation.

    In immediate mode (I think this is the default case in minecraft) when you want to render say a square:

    Unit square

    You would issue the following commands each frame (in pseudo code)

    begin drawing
    draw line from (0,0) to (1,0)
    draw line from (1,0) to (1,1)
    draw line from (1,1) to (0,1)
    draw line from (0,1) to (0,0)
    end drawing

    For one square, this is not a lot, but there could be millions of vertices in a scene, and they may have more attributes (colour, normal etc.). This is a lot of data to send to the GPU each frame.

    Using VBOS, you would load all of the vertex data into GPU memory at the start. Pseudo code might look like this:

    create VBO
    load (0,0) into VBO
    load (1,0) into VBO
    load (1,1) into VBO
    load (0,1) into VBO
    load (0,0) into VBO

    The OpenGL code will give you back a ‘name’ for this VBO (a non-zero unsigned integer iirc). You can then reference this when you want to draw the square. So each frame, you only need to issue one draw command:

    draw vertices in VBO

    You may have to set up the drawing state so that it uses pairs of vertices for lines, but for each additional VBO, you only require one extra draw call. In fact, for static level geometry (probably not applicable in the case of minecraft) you can combine all of these vertices into one massive VBO, if you have enough GPU memory.

    I’m surprised that the speed-up is only 5-10%. This is probably because of the dynamic level geometry.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report
Leave an answer

Leave an answer
Cancel reply

Browse

Sidebar

Ask A Question

Stats

  • Questions 4k
  • Answers 4k
  • Best Answers 0
  • Users 200
  • Popular
  • Answers
  • Alek Richter

    Make MS Word document look like it has been typeset ...

    • 2 Answers
  • Alek Richter

    When does a process get SIGABRT (signal 6)?

    • 2 Answers
  • Alek Richter

    How do I add sockets to an item?

    • 2 Answers
  • Alek Richter
    Alek Richter added an answer Pandas DataFrame columns are Pandas Series when you pull them… January 13, 2022 at 2:21 pm
  • Alek Richter
    Alek Richter added an answer The handshake failure could have occurred due to various reasons:… January 13, 2022 at 2:19 pm
  • Alek Richter
    Alek Richter added an answer Mac OS X doesn't have apt-get. There is a package… January 13, 2022 at 2:18 pm

Top Members

Alek Richter

Alek Richter

  • 4k Questions
  • 1k Points
Enlightened
fayemolloy0

fayemolloy0

  • 0 Questions
  • 20 Points
Begginer
NikolaZex

NikolaZex

  • 0 Questions
  • 20 Points
Begginer

Trending Tags

questin question

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • New Questions
  • Trending Questions
  • Must read Questions
  • Hot Questions

© 2021 Passionable. All Rights Reserved

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.