Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

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

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.

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

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • 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
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5968149
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T20:02:52+00:00 2026-05-22T20:02:52+00:00

Can anyone suggest a fast , efficient method for storing and accessing a sparse

  • 0

Can anyone suggest a fast, efficient method for storing and accessing a sparse octree?

Preferably something that can be easily implemented in HLSL. (I’m working a raycasting/voxel app)

In this instance, the tree can be precalculated, so I’m mostly concerned with size and search time.

Update

For anyone looking to do this, a more efficient solution may be to store the nodes as a linear octree generated with a Z-order curve/Morton tree. Doing so eliminates storage of inner nodes, but may require cross-referencing the linear tree array with a second “data texture,” containing information about the individual voxel.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T20:02:53+00:00Added an answer on May 22, 2026 at 8:02 pm

    I’m not very experienced at HLSL, so I’m not sure this will meet your needs, here are my thoughts. Let me know if something here is not sane for your needs – I’d like to discuss so maybe I can learn something myself.

    1. Every node in the octree can exist as a vector3, where the (x,y,z) component represents the center point of the node. The w component can be used as a flags field.
      a. The w-flags field can denote which octant child nodes follow the current node. This would require 8 bits of the value.
    2. Each entity stored in your octree can be stored as a bounding box, where r,g,b can be the bounding box dimensions, and w can be used for whatever.
    3. Define a special vector denoting that an object list follows. For example, if the (w + z) is some magic value. Some func(x, y) can, say, be the number of objects that follow. Or, whatever works.
      a. Each node is potentially followed by this special vector, indicating that there are objects stored in the node. The next X vectors are all just object identifiers or something like that.
      b. Alternatively, you could have one node that just specifies an in-memory object list. Again, not sure what you need here or the constraints on how to access objects.

    So, first, build the octree and stuff it with your objects. Then, just walk the octree, outputting the vectors to a memory buffer.

    I’m thinking that a 512×512 texture can hold a fully packed octree 5 levels deep (32,768 nodes), each containing 8 objects. Or, a fully packed 4-level octree with 64 objects each.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Can anyone suggest a good source control system that interfaces with VB2005 Express? As
Can anyone suggest a good implementation of a generic collection class that implements the
Can anyone suggest me a helpful programming language which can be used to create
Can anyone suggest some good browser add-on tools/extensions to help with development? I have
Can anyone suggest a way of getting version information into a Web Service? (VB.NET)
Can anyone suggest which of the Redmine or Tracd would be a better option
Can anyone suggest a good reason to use web services instead of RPC (not
Can anyone suggest the best deployment approach for VSeWSS 1.2 based development? I have
Can anyone suggest a suitable way of figuring out a pieces allowable moves on
Given Wikipedia's discussion of Double Factorial s, can anyone suggest where I might find

Explore

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

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

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.