Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by mic_head · Jun 08, 2015 at 11:05 AM · meshrenderinggpumeshrenderervbo

Render VBO on GPU through MeshRenderer

Hi all, is there a way to load a VBO in a buffer on the GPU and tell Unity to render it through a MeshRenderer? Thanks in advance!

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Bunny83 · Jun 08, 2015 at 12:30 PM

Your wording doesn't makes much sense. A VBO is a vertex buffer object. A VBO is by definition stored in the GPU's memory. And yes a MeshRenderer uses a VBO to actually render the mesh.

Comment
Add comment · Show 6 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image mic_head · Jun 08, 2015 at 02:31 PM 0
Share

Sorry, probably I was not clear enough. What I meant is the following: is it possible to manually allocate a buffer on the GPU and load a VBO into it (let's say through CUDA), and then tell Unity to render that particular VBO through a $$anonymous$$eshRenderer?

avatar image Bunny83 · Jun 08, 2015 at 04:52 PM 0
Share

No, not without native code plugins. Unity is a high level development environment. What's the point of manually allocating an VBO?

Unity abstracted the concept of a VBO(OpenGL) / VertexBuffer (Direct3D) with the $$anonymous$$esh class. What would you do differently than Unity? To update the content of a VB you always need to allocate system memory where the content can be stored and then uploaded to the GPU. You don't have direct access to the video ram as it isn't system memory.

btw: a VBO is an object on the GPU. When you "lock" the buffer Direct3D allocates a temporary memory section in the system memory and copies the content of the VB into that memory. When you unlock it, it does the reverse. For OpenGL it's a very similar procedure. By calling glBufferDataARB you copy data that is located in the system memory into the VBO.

But again, what's the point?

avatar image mic_head · Jun 08, 2015 at 05:09 PM 0
Share

For example, for updating the positions of the vertices in parallel through CUDA and avoiding data transfers between CPU and GPU in every frame. So, do you know how (if possible) could I do that through native code plugins?

avatar image Bunny83 · Jun 08, 2015 at 05:52 PM 0
Share

Well it should be possible with low level native code plugins. Unity also provides compute shaders to do calculations on the GPU.

Have you actually any experiance with CUDA or really low level rendering in OpenGL and / or DirectX?

Further more, at least in the past, native code plugins was a Unity pro only feature. However it's not really clear anymore since the Untiy website is, well, chaos. At the moment it's near to impossible to get a clear list of features. If you have Unity pro that shouldn't be a problem for you.

avatar image mic_head · Jun 11, 2015 at 12:03 PM 0
Share

Sorry for the late response. I know I could use low level rendering with native code plugins, but what I was asking is: can I still take advantage of $$anonymous$$eshRenderer components if I want to use VBOs loaded in low level plugins? If so, how can I do that?

Show more comments

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

How does Mesh.CreateVBO work? 1 Answer

ECS mesh dissapears on camera move in Game or Scene 0 Answers

Mesh Renderer glitch when switching its parent 0 Answers

Better model? Use Mesh clipping or add more vertices? 0 Answers

Weapon system 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges