There are infinite possibilities when it comes to the objects that we can create using geometry nodes, and we can even combine our geometry node systems with our material node systems to create the ultimate procedural object creation. A prime example of this is creating a hologram of any shape using geometry nodes.
Complete the following steps to create a hologram of any shape in geometry nodes…
- Create a new node system and use a grid primitive as the starting point
- Instance your grid on a mesh line node to create an array on the Z axis
- Duplicate your instance on points node and instance ico spheres
- Realize the instances of your grid and connect to your target object
- Define the settings of your hologram density
- Create and assign a material to your node system
There are three main stages to creating a hologram aside from the materials: creating the array, assigning the points, and directing them to our target object.
Creating A Grid System
The idea for creating a hologram using geometry nodes is first to create a field that will be used to display the geometry as a hologram.
This will require the use of instances on an array, which means that we must start by creating the 1st layer of that array using a grid node.
Create a new node tree for a primitive object in the geometry nodes tab. It does not matter what the object is, as we will replace the group input node with the grid node and connect that to the group output.
Increase the vertex count on both the X and Y axis to a value like 32, as these values will represent the resolution of the hologramatic interface.
Build An Array Of Grids On The Z Axis
We want to be able to position any object within our grid system, which itself will be replaced by instanced geometry.
To create an array for the grid, temporarily detach it from the group output. Then replace it with a mesh line node.
Add an instance to points node to your setup so that the points of the mesh line, which should be pointing up on the Z axis, are replaced with the assigned instance.
Connect the grid node to the instance input, and the grid will be replicated on each of the points of the mesh line.
Create a frame for this part of your setup and label it as Array Base so that you know the purpose of this section.
Instance Your Points To Your Array
With the array layers in place, we now need to convert the points of the grids to instances. You can use any object you wish for this, but a typical choice would be the ico sphere.
Create a second instance on points node, and then add in an Ico sphere node, or your choice of primitive, and position as the instance for this second stage.
Make sure that the radius/size of the instanced object is very small so that there is plenty of room between each point.
Connecting Your Target Object
The next stage in the process involves assigning our target object to the node system so that we can map our instances to the target model.
Create your target object and position it within the array field you have created. Ideally, the entirety of the mesh should be inside the field.
It then gets more complicated as we need to convert the instances of our grids back to points, in order to map those points to the target mesh.
If we use a viewer node and take a look at our spreadsheet, we will see that after the first instance on points node we have instances only. We will need to convert these instances back to points.
There is no node that does this directly, so we first need to realize the instances of our setup by using the realize instances node.
Reconnecting the viewer node demonstrates that the instances have been converted to mesh geometry at this point.
This makes it easier as we can now use the mesh to points node to convert this mesh data back into points. Note that this means a lot more instances in our system.
The mesh to points node is what will allow us to add the points to the target mesh. There are two ways that we can connect to the mesh.
The first method is to use the position input. Add the object info node and set it as your target object, then set the mode to relative instead of original.
Introduce a Geometry Proximity node and connect the geometry output of the object info node to it. This is the node used to connect our objects.
Link the geometry proximity to the position input of the mesh to points node and the points will instantly connect to your target object,
You can change the target settings to perform minor adjustments of the point placement or can adjust the mode for how to mesh is converted to points.
A second method is to connect the geometry proximity node to the selection input using the distance instead of the position, and use a math node set to less than with a very small value to link to the mesh.
With this method, any points close to the model will attach to it, while other points will not be generated if they are too far from the target.
Define Your Settings
By this point you should have your set up in place, now you need to control how many points are made visible using the mesh line values and the vertex count.
Remember that a grid of points is generated on each point of the mesh line node, so to increase the number of points per grid or layer, as it were, you would increase the vertex count on the X and Y axis.
You could also use the mesh line node to reduce the distance between each layer, and then increase the count value for the total number of layers.
This method will increase the detail considerably for your hologram but be warned that this is the stage that could impact the performance of your computer the most.
Set Your Material
Holograms are effectively light beams constructed to form 3D shapes, so the material used for a hologram needs to have a high emission level.
Before you create the material, make sure to hide the target object from both your viewport and your render, since by now you will have no further use for it.
Create a new material for the object the node tree is assigned to and name it holo. Then set it to a color that you want using the emission setting, not the base color.
You will notice that the material is not applied to your points, even in the rendered view. This is because we need to set the material in the node system, which replaces the base geometry to begin with. Add a set material node at the end of your setup and ensure that it is pointing towards your holo material.
Now return to the material settings and edit the emissive strength to your liking.
A couple of additional things to note. For best results, use the bloom setting in Eevee and increase the gain value.
Reduce the brightness of the environment to emphasize the light emitted from the hologram.
Also for point placements, we prefer to use the points mode for the geometry proximity node and the face target for the mesh to points node.
Bonus – Animate Your Model
The best thing about this set up is that you can still animate your hologram by adding animations to the target object.
For example, we could rotate the Suzanne object several times on the Z axis, and the node tree will work without issue. Check out the video below.
Thanks For Reading
We appreciate you taking the time to read through the article. We hope you found the information you were looking for. If you are interested in learning more about the Blender software, you can check out a few of the articles we have listed below.
- Creating A Hologram Material Using The Eevee Render Engine
- What Does Clearcoat Mean In Blender Materials
- Improve Your Material Workflow Using Groups
- Creating An Array Using Geometry Nodes
- Designing A Hexagonal Grid Using Geometry Nodes