How to make a Hologram in Blender in 15 minutes

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
we're gonna make this procedural hologram that can form any shape text or object you want and we're going to do it entirely using the free open source software blender stick around to the end to see the final animation with a brand new scene opened up go to the geometry nodes Tab and just close the spreadsheet so that we've got more room to work with now on my default Cube here I'm going to click new and then sever the connection so that we can replace it with some new geometry and that geometry is a grid and the reason we're starting with a grid is that we're essentially going to be creating a point in which little tiny pixels can appear and this grid most importantly has subdivision controls which will come in handy later as this is going to become the resolution of our hologram firstly though a hologram is not 2D its key factor is that it is 3D so we want to create volumetric pixels so I need to essentially create an array modifier to make the grid go up multiple times now geometry nodes doesn't have an array function but it's very easy to create one if I just type into search mesh line and can make this up you can see it's just created a straight line but it's also got a number of vertices along it which is our count now if I add in a instance on points connect that after it and then take my grid and plug that into the instance you can see that each one of those vertices of the line has created an instance of a plane which is essentially an array modifier and I've got the same controls here I can choose the number of them just like I would in Array modifier now's also a good time to set the real world scale of your hologram it can obviously be whatever scale you want I'm going to go for a relatively small portable sized hologram of the future of only 20 by 20 centimeters deep and I'll just adjust the gap between this so that we've got a little bit more pixels along the vertical we can obviously adjust this later but just getting it set up as best we can now to create pixels wherever there is a vertices it's very easy if I just duplicate my instance on point and then put it straight after it it's now going to look at that whole mesh array and wherever there was a vertices it's going to treat that as a point and put whatever geometry we want there so right in here where it's got instance drag this out and then type in icosphere it's now done exactly what we wanted but the icospheres are a little bit too big so I'm going to turn that down to a relatively small size and you can see it's done exactly what we wanted each one of those vertices in our original plane there has become its own little tiny icosphere which also means I can change the resolution of my hologram by adjusting the vertices or the count and most importantly this is non-destructive so I can adjust all these parameters later so we've got a lot of pixels but I only want the pixels to appear here wherever there is an object so first of all I need an object it can be whatever object you want I'm going to make mine a donut because I am raising money for blender on October 3rd which is in a few days the baker's dozen is launching on Foundation One Donut will be auctioned off every 13 days and then all that money is going to blender this hologram is one of the donuts if you want to see the other 12 then click the link in the description provided our object is somewhere inside of this volume we should be good to go so in our setup before it becomes an icosphere I want to manipulate these points now we could technically do our selection right in here but I want to use it again later on for the light beams so I need to add in a new node which is a mesh two points node drop this in here and this is just going to essentially enable us to sort of mask out which pixels we want because it's got a selection input so first I need to drag my Taurus down so that it appears in my geometry nodes then drag out of the geometry output release and type in proximity so the geometry proximity node is a relatively new node which enables you to have objects interacting with each other and to the point I'm going to take my distance output of this and put this into my selection of my mesh to point node now this node is always a little bit confusing because whenever you connect ego nothing is happening and that's because there's not really a threshold value in our geometry proximity node to specify how far is it going to look outside of the mesh so by default it's just looking everywhere so it's turned on all of the pixels so to specify it what we need to do is add another node shift a utilities math drop this in here between that connection and then set this to less than so this is now going to be the threshold for which it's going to start to look for pixels and make them appear and I have to drop this really low in order to see anything there we go so something is happening but not what we wanted and that's for a couple of reasons but the first reason is that it's currently just treating each point sort of independently acting independently when really we want them to treat all of the points as a whole so that's where you need the node that very few people really know what it does but you use it all the time and that is the realize instances node drop this in here and now it is working but it's putting the donut at the bottom there and that's because by default it's brought it in as the original location which I guess means the global coordinates before we did Transformations so set it to relative and now the pixels are finally appearing where we want them to if I want more pixels if it's not finding enough of them I could just increase the threshold but generally you don't want the pixels to be straying too far outside from where your mesh is so we can play with this later but first I'm going to make this look good so I'm going to go to the rendered View mode and I am going to stick to the EV render engine which is great because it means it'll render really quickly and I'm going to make the background black and my Taurus I don't want it to appear in a render so I'm going to disable that and underneath viewport display I want to set it to only display as Max as a wire frame inside my viewport so that means that I can still manipulate it move it around but it's not going to interfere with the Hologram appearance now let's make these pixels glow so go to the materials panel change the surface to emission and we can't see anything and that's because when we added in this icosphere mesh it's technically sort of existing in an unassigned state so after instance on points add in a material set material and then set it to that material that we've just created I'm going to call this pixels set the color to blue because of course everything in the future is blue and then underneath render properties my favorite button Bloom haha magic now it's looking a little chunky at the moment a little low res but because we've built this non-destructively it is very easy to adjust so I'm going to drop the size of each pixel by a fifth like that and I can increase the resolution of the X and Y by increasing the uh vertices X and right there I can also see that it's looking too far outside of my Donuts I've got like this kind of like this thick area so I'm going to drop my threshold a little bit like that that looks a little closer that's good and this part the is the distance between the Zed there that's really up to you like I mean obviously if you wanted it to look kind of like um you know like the same Gap as there is along the X and Y it'd be something like this right you need a lot of pixels to fill it in and it will be a little bit slower but it gives it kind of like a full feeling kind of like I don't know like Blade Runner aesthetic this kind of looks like that I personally I was playing around with it and I kind of like the idea of it being like um like it's in the future but like it's not so far in the future that they figured out all the Kinks yet so it's got this I don't know like maybe there's just like a limitation of the technology that makes it so that there's less pixels going vertically than there are elsewhere so it's kind of like this like analog CRT kind of feel um obviously totally up to you but this is the uh the setting that I went with now if you want to stop here you could because that is basically a hologram but make sure you hit subscribe before you go so you don't miss out on New tutorials but something that could help this really stay grounded in reality is adding something that we see in real life which is a light beam somewhere where the Hologram is being projected from you could create it very quickly just using like a tapered cylinder and like a gradient texture but since we're using the geometry nodes and we've got it already set up it's not actually that much work to have a projector Light Beam that actually matches with the pixels that are on the screen so just to to help separate a lot of this Mass over here I'm just going to select just this last bit here this is the part where it's actually creating the pixels so I'm going to hit shift p which is a hotkey that you can only use if you've got the node Wrangler tool enabled but I highly recommend enabling it I'm just going to call that frame pixels okay so now this part over here this is the part where it's actually created all the individual points before we put the pixels on it and from here what I want to do is create another instance on point note and then where it's got the instance I'm looking for curve line which if I visualized that looks like this so we've now got on each of those points a curved line that is roughly uh what is it one meter length curve doesn't really matter we're going to change that length later but most importantly it has spawned in a bunch of Curves at the origin point of each of those pixels when really what we want is we want to change the position of those curves so right in here after that instance on points I'm going to add in a set position node okay and then here where it's got position I can add in any new object for those uh those new curves to be spawned at so first of all I need a new object it could be an empty but in my case I actually want to make it a something that looks like a light bulb like kind of glowing and any emitting things from so I'm just going to make it a UV sphere which I will scale all the way down apply the scale and select my object I might as well click the pin button so it doesn't keep disappearing and then I'm going to drag down that new sphere that I just added in here and I'm going to take the not the geometry but the location of that and put that into the position input okay so now all of those thousands and thousands of Curves have spawned just on that one point straight up but this is the big brain moment if we use this selection input of our set position node if I drag out and I type in end point selection okay and then set the start size to zero it well there's something else we need to do first but what this has told us is that we've said yes we want the start position to be at this point but only the start position of the initial point of the curve so one end of the curve whereas keep the rest of the curve the final point of the curve where it was now the reason this has not worked is because just like up here realize instances so right in between here and here I need a realize instance nodes realize instances type it in and there we go so all the curves are now doing exactly what we want it to by the way big shout out to Erindale for um really a lot of help on this tutorial I just uh keep pinging him questions on Twitter and he helps me uh figure out how to do a lot of this stuff so shout out to his channel if you want to check his out I'll put it up there as well now if we were to try to render this right now we would see nothing those curves will not render until we give it a mesh because mashes are the only meshes and volumes are the only things that will actually render so right after here I need to type in curve to mesh okay which still will not have given it a match because a mesh doesn't really have any thickness until you tell to so in here where it's got profile curves I'm looking for curve Circle drop that in and now we've finally got something it's it's added in a bunch of Curves with a radius of one meter each so let's dial that way way down uh-huh there we go we've got some tubes and then let's set the resolution to three so that is basically each of these tubes is now just a three vertices tube which is the minimum amount to uh really to render and then I just want the size to be the same size as my pixels So speaking of which we've currently just looking uh just at that part of the pipeline but I can now add in a join geometry node in here and connect it up so now I've got my little pixel there which means I just need to dial this back until they are roughly the same size I mean you could just get it close but you know I'm a person of precision so I want it to match there we go okay cool now it's rendering but it doesn't look very pretty and that's because it's just giving it like a default material because just like before we have to use a set material so material set material drop this in and I want to give it a new material so I'm going to call this beams type in beams and then let's go to the shading tab rendered View mode principled is overkill I don't want printable all I want is first of all an emission Shader which if I drop it in here will look like this not very pretty now what we really want is much like light we want some light as they're sort of like overlapping it makes the beam more powerful right that's that's really what we want so you would think that like if you just you know dialed back the emission that it would do that effect but it's not and that's because light it's yes it's it's light but it's also transparency so we need to mix the emission with a mix Shader and transparency okay but again we can see that nothing has really happened and that's because the other thing you need to do when you're using EV if you've got a material that needs transparency you need to set the blend mode here to be Alpha blend and now if I drag this up we should eventually get to a point haha where the magic happens and then really the magic is just yeah just tweaking this just a little bit until you can just see it and you get this cool effect where you don't need to adjust it you don't have to put a texture on a cylinder and try and fake it like it actually matches the pixels on it it's one of those like nice uh perks of doing things the right way is you don't have to bother like fighting something that was just like fakery it all actually matches which is really cool and guys that is the Hologram if you wanted to make it look even cooler you could add a floor underneath it add a lamp over it so that the glow affects its surroundings and for a quick and dirty sci-fi cage you can add a cylinder then add a wireframe modifier to that which will turn the edges into lines and everybody knows that lines look futuristic then with a little more massaging you could end up with something like this [Music] so that's it as you can see I went back and forth on which resolution of the Hologram looks cooler the vertical Gap approach that looks kind of analog or the full frame approach which I thought looked a little cooler for this detailed donut if you want to pull apart the scene to see all the settings I've included a link to the blend file in the description and I've also included a link so that you can see the 12 other Donuts that auctioned off blender finally hit subscribe if you want to learn blender for more videos like this one
Info
Channel: Blender Guru
Views: 478,958
Rating: undefined out of 5
Keywords: blender, tutorial, andrew price, blender guru, blender tutorial
Id: 0OsgS2JpM8k
Channel Id: undefined
Length: 15min 12sec (912 seconds)
Published: Fri Sep 30 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.