Tips: -If the instances are invisible in game, go to the material editor and enable *Used With Instanced Static Meshes* - Use instances only for objects close to each other, because the whole group is either rendered or hidden (culled) at once - no granularity here. - Several instancing components per actor are OK, and can help with the issue from the previous point. -You can't vertex paint individual instances - though you can paint the mesh and save, if identical copies are not a problem for you.
@behnamp91745 жыл бұрын
how about occlusion culling?!
@TechArtAid5 жыл бұрын
+Ben S: You either see all instances or none. No finer culling
@behnamp91745 жыл бұрын
@@TechArtAid no! I mean i think occlusion culling is also good. Would you please make a tutorial about occlusion culling? Like horizon zero dawn
@TechArtAid5 жыл бұрын
I don't have to. It's enabled by default in UE :) But instancing doesn't support per-instance culling. Only the whole group at once
@behnamp91745 жыл бұрын
not for this project :))), i looked everywhere for a proper tutorial but i couldn't find any, i'm asking if you can do a favor to me and show me how to make it please :)
@Maverick997 жыл бұрын
Super helpful! Thanks.
@shanilwijesinghe52016 жыл бұрын
jump to 6:45 for how to create instances in Unreal Engine
@betweenthedimensions71653 жыл бұрын
the real MVP
@Bapfal7 жыл бұрын
Yay, finally! Very informative, thank you very much. :) Btw. if you didn't know: you can right-click a pin (like tranform and location) and "split struct pin" instead of the "make transform" nodes. Just makes your BPs a little bit more compact. You can also right-click and "promote to variable", to skip some steps, when you want to use new variables :)
@TechArtAid7 жыл бұрын
+Creep Whoa, you're quick! Yeah, finally ;) And I didn't know that splitting works for basic types too - nice.
@HeavenInspiredMovies7 жыл бұрын
This was a super-useful tutorial, and very well-explained! Thank you very much for sharing.
@StefanLundmark4 ай бұрын
Well done! Just want to clarify one section: using instancing doesn't require using blueprints. You can also do it from code. Thanks for the tutorial!
@asdasdasdasdasdas4977 жыл бұрын
Thank you so much for doing these tutorials. They're very easy to follow and are structured so well. Can't praise your work enough. Looking forward to the next tutorial!
@TechArtAid7 жыл бұрын
I'm so glad that the structure and pace works well! I was worried by the length of this one. Initially I thought that slides would take a bigger part, as "it's just a setup"
@cruzaofdeath4 жыл бұрын
Wielkie dzięki za ten kanał, od lat uczę się modelowania, ale wraz z własnym rozwojem, zacząłem bawić się shaderami i wciąga mnie to coraz bardziej. W pracy trafiłem na problem związany z sortowaniem przezroczystości, potem trafiłem na film z ditheringiem. Później szukałem czegoś o shaderach na YT i trafiłem na Twój material płonącego drewna, zacząłem więcej o Tobie szukać i okazało się, że prowadzisz cały kanał na ten temat, na którym ponownie znalazłem wspomniany wczesniej dithering. Super jest to co robisz i doceniam! Ta cała wiedza z różnych dziedzin miksuje się w jednym miejscu, bardzo mnie to fascynuje. To jest chyba to, czym chciałbym się zajmować, ale obawiam się, że może już być trochę za późno z nadgonieniem wielu rzeczy. Chociaż - kto wie... Ledwo po studiach trafiłem do pierwszej poważnej pracy i ze stanowiska 3d przeniesiono mnie do robienia efektów i każdy kolejny kawałek wiedzy, każdy kolejny efekt, który uda mi sie osiągnąć jest jak diament... Zdaję sobie sprawę, że historia życia jakiegoś randoma spośród komentarzy jest nic nie warta, ale miałem jakąś wewnętrzną potrzebę się tym podzielić. Tym bardziej, że ludzi z taką wiedzą i to we własnym kraju jakoś ciężko mi znaleźć : ) Pozdrowienia!
@jamieeverett75156 жыл бұрын
keep up the good work, there aren't a lot of TA help on youtube, so this channel is absolutely a goldmine. THANKS!
@aleksvitek798 Жыл бұрын
Absolutely terrific video! Thank you so much for this!
@Kinos1417 жыл бұрын
Thank you for this. This really helped me with creating city layouts!!! Thank you and Merry Christmas!!
@TechArtAid7 жыл бұрын
+Kinos141 Merry Christmas :) So you're using instancing for buildings? I'm interested whether it's a final solution for you or just for prototyping? What problems had you encountered? I'm curious how you handled variations
@melinaschweizer46097 ай бұрын
This was awesome!! thanks so much. Now I can change my game settings and tackle the performance issues I've been seeing!🤩
@starscream20927 жыл бұрын
wow your tutorials are some high quality well explained stuff i saw on youtube, and trust me i browse daily for tutorials. Jeez this is amazing.
@TechArtAid7 жыл бұрын
+StarScream2092 Thx! Do you browse specifically for something? Which other channels do you like?
@starscream20927 жыл бұрын
I do not browse specifically for anything. But want to make some beautiful space scenery and this really helped me. And the way you explain it is top notch. I usually like YT channel = ''barry lowndes'' , '''CGUOD'' , ''Project Torture'' , ''MrFalaranah'' , ''liaret'' , ''Jonas Mølgaard'' , ''GameDevMan'' , ''GameDev1909 Gaming and Guides'' , ''Steve's Tutorials'' , ''Tesla Dev'' , ''UnrealTek''. Also watching Unreal Engine 4 official channel but they have like 1 - 2 hour streams so its hard to check it, but lately they had a video about photorealistic rendering in real time and how to disable game-optimising for mesh/light/textures so you can achieve better quality when going for maximum quality.
@TechArtAid7 жыл бұрын
+StarScream2092 Thanks for the names. UE official is good, that's right. From basics to real advanced stuff, like blueprint render targets.
@etheriondesigns6 жыл бұрын
Thankyou so much! This will greatly improve the framerate of my game!
@mpowers100003 жыл бұрын
Very Helpful. Thank you!
@psy2373 жыл бұрын
super helpful while debugging my current framerate and even though my game's for mobile, it showed me some tools i can work with, thanks :) just have to figure out the numbers I should achieve for having more mobiles being able to play my first map :)
@adamgeiger49907 жыл бұрын
Great Video, Very Informative, Thank you.
@Nomadfr7 жыл бұрын
Thank you very much for this ! Keep going !
@in2fractalout Жыл бұрын
over 9000! cheers. compile 🔥
@sergeyfilin52042 жыл бұрын
Great! Thank you! It's a brilliant tut!
@mch438563 жыл бұрын
Thanks dude really useful!
@realtimer30007 жыл бұрын
finding your chanal was like finding gold! realy amazing stuff! Thank you a lot, can't wait for your next topic :) !
@TechArtAid7 жыл бұрын
+Markus Frei Great! Next will be instances pt. 2, then either render targets or blueprint-shader interactions. Feel free to suggest topics too!
@Juri_anderSpree7 жыл бұрын
+Tech Art Aid very informative! Thanks! My suggestion for the next topic: level-streaming/level loading and unloading
@TechArtAid7 жыл бұрын
+Juri K ... with the new 4.14 lightmap sets feature? (day/night) ;> I don't promise yet but sounds interesting. How'd you do it from the level art perspective? As I think of the channel should be art focused
@cupsster17 жыл бұрын
I would be interested in this as well, your videos are very informative and useful, please continue. They are especially useful for me as I'm transitioning from Unity to Unreal and examples (which UE doc is seriously lacking) help bring me up to speed much quicker. Much appreciated! :)
@leo697802 жыл бұрын
Great video ! Thanks you
@jsnellink19906 жыл бұрын
Great explanation man! You have helped me out more than you could possibly know!
@TechArtAid6 жыл бұрын
:o Cool, great to know! :)
@jsnellink19906 жыл бұрын
As a quick follow up on this, I used the techniques you explained in your video to create a UE4 blueprint that allows creation and animation of hundreds of identical instances along a custom spline. This is achieved by building up the instances for one frame, destroying them and then building new ones up with a slight transform in the next frame (for me this turned out faster then modifying existing instances). The input mesh I used was quite detailed as well. Before framerates dropped to the 20s range on my gtx 1080 now the application stays steady at 120 in editor. Wouldn't have been reasonably possible without this technique so many thanks again and keep up the great tutorials!
@TechArtAid6 жыл бұрын
Amazing. And... it shows how serious (not straightfoward actually) performance problems Blueprint can have. If destroying is faster than updating. Most of the time it's brilliant, I love BP, but this or ray casting can murder performance. Well, I have to make a video which compares C++ to BP in various scenarios, just out of curiosity.
@Indik47 Жыл бұрын
Great explanation. Thank you!
@Mority903 жыл бұрын
thanks that was insightful!
@eyetoof5 жыл бұрын
Excellent tutorial! Thank you so much, this was the info I needed.
@TechArtAid5 жыл бұрын
Nice to hear that!
@MarkusRomulusMaximus7 жыл бұрын
Thank you! Very helpful video, bookmarked! :)
@pencilgun49345 жыл бұрын
Thank you fantastic job. I downloaded your assets from Cubebrush to study them.
@UnrealTech94036 жыл бұрын
I owe you a beer or two for your amazing resources. Muchos gracias!
@TechArtAid6 жыл бұрын
+Mike R Enjoy! I have to speed up preparing new ones, as recently the job change (and book project) disrupted the flow
@AlDepthGame7 жыл бұрын
Fantastic video! Very informative
@seanomik61764 жыл бұрын
Amazing video, this was extremely helpful!
@TechArtAid4 жыл бұрын
Nice to hear that, thanks
@wabachi7 жыл бұрын
me first minute in the video : "WHAT SORCERY IS THIS!!!" nice video man thx and keep the good work
@TechArtAid7 жыл бұрын
:D Sure, I will. Now I'm planning a series on lighting optimization in UE4. (Houdini basics should have been done as well, but I'm still playing with the environment I'll use for it)
@wabachi7 жыл бұрын
only one small question, if i use this for grass (without foliage tool just this method) is there any chance that i can specify to place itself on the ground without clipping thru? like.. detecting the ground and place itself above it? thx again and yes i know it may sound a bit silly my question but i'm trying to learn
@TechArtAid7 жыл бұрын
+wabachi You'll have to write some crazy construction blueprint. Foliage tool makes use of instancing, but even more optimized is the Grass Tool. It's harder to learn it, though, but after you get through you'll see it's really easy to use. You assign a grass type in the landscape *material* and it gets automatically spawned on the certain painted layer of landscape: docs.unrealengine.com/latest/INT/Engine/OpenWorldTools/Grass/QuickStart/index.html
@wabachi7 жыл бұрын
i see, thx a lot for the reply
@zakuma225 жыл бұрын
Life saver! Outstanding tutorial!!
@pencilgun49347 жыл бұрын
This will be perfect for my mountain cliffs thank you :-)
@pencilgun49347 жыл бұрын
This is very well explained thank you,
@sean83064 жыл бұрын
I think I've said this before. But you are amazing!
@Travio247 Жыл бұрын
Really interesting tutorial thanks
@TechArtAid7 жыл бұрын
"One thing to know about instanced static meshes is that if any part of the mesh is rendered, the whole of the collection is rendered. [...] It’s recommended to keep a single set of instanced meshes in a smaller area; for example, a pile of stone [...], a stack of boxes" software.intel.com/en-us/articles/unreal-engine-4-optimization-tutorial-part-2#instanced-static-meshes
@jobvanwijngaarden7 жыл бұрын
This was really helpful, Thanks!
@kyledavis80567 жыл бұрын
Amazing stuff! Thanks so much!
@eritorigon4 жыл бұрын
Huge help, thank you so much!
@vicwaberub52974 жыл бұрын
Very good video. Please make more!
@TechArtAid4 жыл бұрын
Thanks! I'd like to return to tutorials sooner than later :)
@nubeslocas5 жыл бұрын
amazing tutorials in your channel, thanks a lot keep like this :)
@TechArtAid5 жыл бұрын
Glad to hear you enjoyed it :)
@nubeslocas5 жыл бұрын
@@TechArtAid of course I've enjoyed, internet is awesome thanks to people like you who do thinks and share knowledge ;)
@mhnoni7 жыл бұрын
That 30 min tutorial took a lot of time from you to make it , thanks a lot mate for your time , btw are you enginer in some big games company :) ? you have great info .
@TechArtAid7 жыл бұрын
+N Noni You're welcome :) It was also slowed down by a commission, crunch time and a long illness. A month of surprises... I have sticked to small companies for now. I joined QubicGames, my first job, when the company sort of 'rebooted'. There were only several in the beginning but they got Nintendo DS devkits and their custom 3D game engine. Gradually we've grown to 15. This let me switch roles from environment art to racing level design to tool scripting. I learned a ton by discussing with programmers, which was natural in such environment. Then I led a team of 4 artists on a VR project in Unity. This was a big switch to PBR rendering, which was just emerging in games then, so we learned by experimenting. Such a small team won't be able to produce entire cityscapes or coastlines without tricks. So I read every GDC paper I could get my hands on ;) Now I work in Houdini in a VFX company (amazing piece of software btw.) But I'll be getting back to games definitely.
@mhnoni7 жыл бұрын
Tech Art Aid That's good to hear , good luck mate , no need to ask what kind of tutorial we need as you already surprise us every time you upload such unique tutorial so thanks again .
@Carkoon2 ай бұрын
AFAIK later Unreal versions added Auto Instancing (in 4.23?). Would you say this manual approach is now less relevant and only for extreme/edge cases? Or is the Auto Instancing actually not that useful?
@TechArtAid2 ай бұрын
Auto is based on luck :) I recommend manual where it is still reasonably convenient. You can do Actor -> Merge -> Batch. Also, check out Packed Level Actors - they kinda do that for you
@Carkoon2 ай бұрын
@@TechArtAid Thanks for the quick answer! I'll take a look at Packed Level Actors. :) In my case I wanted to move instances (created dynamically at Begin Play) of like 3-4 different meshes along a spline which I've been finding a bit difficult. Before I just spawned BP actors with multiple meshes inside them, which I think was the cause for some performance problems (not 100% comfortable with profiling though). But when I read about Auto Instancing I wondered if maybe instancing is actually not gonna help me that much?
@TechArtAid2 ай бұрын
Ah I see. Updating instances' transform is kinda expensive - but that depends, as always :) You can see my vid Measuring Performance for a lightweight kind of profiling (just milliseconds)
@Carkoon2 ай бұрын
@@TechArtAid But if I only mark the render state dirty at the last instance of each instanced mesh it should be better right? I am aware that it's difficult to give definitive answers to questions like that.
@TechArtAid2 ай бұрын
Yes, it definitely will. In this case you can easily see it - just do it in every loop in my example scene :)
@marekcernoch13557 жыл бұрын
0 to 50 is 51, not 50 (I assume Last Index means the last index to call function with - for(i = first_index; i
@brutal61295 жыл бұрын
Delete this. This is disrespectful to the author.
@TechArtAid5 жыл бұрын
It's fine, thanks. Marek Černoch is right, though this behavior of Unreal loops is unconventional (for loops are usually done with < operator in C++ world)
@AlFredo-sx2yy3 жыл бұрын
@@brutal6129 i know this is old but i dont understand how this can be disrespectful.
@TechArtAid3 жыл бұрын
Exactly! Feedback and critical thinking is definitely welcome :)
@darodism3 жыл бұрын
5:28 gave me an idea, say we have a town ur walking to a specific building and you didnt group any meshes outside. However in the building you group meshes together because theres no point in culling as oppose to outside you cant call because everything is popping in and out. Obviously using level streaming when going towards/inside the building.
@RprtBak2 жыл бұрын
Why does my mesh not show the "Instancing" option? It goes from Static Mesh, to Materials, then to "Instanced Static Mesh Component" But there's no "Instances" section???
@TechArtAid2 жыл бұрын
Hmm there should be. I used it not long ago
@glaseeze2 жыл бұрын
Very usefull video, thank you!
@HakanGurler-xq5cp Жыл бұрын
Teşekkürler.
@gowthamanm38347 жыл бұрын
you save me from the hell fps drop i tried and it gives me 120fps with 1000 of instances thanks thanks
@F0r3v3rT0m0rr0w7 ай бұрын
hey i know this is 5 years ago, but i am wondering, i have a utility widget that i want to spawn in a bunch of tiles, however when i close the program those tiles don't save. is their a way to keep them saved in data ?
@TechArtAid7 ай бұрын
Do it via Get Editor Actor Subsystem -> Spawn Actor From Object, iirc
@GromZadira7 жыл бұрын
Thank you very much! You save my life
@yisun316 жыл бұрын
thank you my friend,its useful
@TechArtAid6 жыл бұрын
+yi sun I'm glad to hear that :) Cheers
@thunderstorm11627 жыл бұрын
Thanks you very mush.
@SuperMontana20087 жыл бұрын
superb tut
@TechArtAid7 жыл бұрын
+Scott Bez - Thanks
@piterpunx3 жыл бұрын
why do the instances LOD dont work on my project? They all come at the same color when i go into the LOD visualization
@TechArtAid3 жыл бұрын
Did you use Hierarchical Instanced Mesh Component? Only this one supports LOD. If yes, try tweaking LOD distances. It's calculated slightly differently for instances meshes
@piterpunx3 жыл бұрын
@@TechArtAid yes dude ok i will try :) thank you
@khulgarulfsson80675 жыл бұрын
Could you potentially turn on collision based on the LOD used?
@TechArtAid5 жыл бұрын
No idea, sorry
@khulgarulfsson80675 жыл бұрын
Tech Art Aid it’s still awesome though! Thanks for making this video. :)
@PandorasLuckbox4 жыл бұрын
Why is it unwise to set the meshes to static? Is it because the lightmap will be large? I was using this method to create a distant city with meshes of very low resolution lightmaps (
@TechArtAid4 жыл бұрын
Yes, I meant exceeding the maximum size of a lightmap atlas. If virtual texturing is used for lightmaps too, then it should be fine. Also, volumetric lightmaps (UE 4.18) reduce the difference between static and movable.
@PandorasLuckbox4 жыл бұрын
@@TechArtAid Thanks.
@hazemsy27972 жыл бұрын
for me its too many arcade static meshes does merging them can help like instanced static meshes???
@TechArtAid2 жыл бұрын
I explain the problems of merging static meshes onto 1 mesh somewhere in the video. TL;DW: you lose culling, increase memory usage massively, increase physics complexity, it's hard to work with that
@Eraser556 жыл бұрын
Great tutorial!
@tryit213611 ай бұрын
hey i have a question..can u vertex paint instanced statiic meshes?
@TechArtAid11 ай бұрын
No, because that would imply varying data per mesh. But for alternatives (variety in shader, global gradients), see my "Good-Looking Randomization" video
@unlinkedgames65957 жыл бұрын
Oh god, this is sooo good! I have a question: You said the foliage tool use basically Hierarchical Instanced Static Mesh metod. If so, i will not get any perfomance improvement when spam al lot of tree, or grass with Hierarchical Instanced Static Mesh, right?
@TechArtAid7 жыл бұрын
+Alessandro Bononi Do you mean using HISM instead of the foliage tool? Yes, it probably won't lead to improvements and it will make placing the plants a lot harder. If you're looking for ways to optimize further, I'll try by combining plants into bigger meshes and painting with those - instead of painting with individual grass planes or trees. And sometimes it's better to add polygons but have a better-fitting mesh (cutting off transparent places) rather than simple quads with more wasted space.
@unlinkedgames65957 жыл бұрын
thank you! i'll try to combining in a bigger mesh. i haven't thougt about before.
@GroundbreakGames3 жыл бұрын
Great video!
@yugilynn3 жыл бұрын
Actual Asteroid belt creation begins on 13:05
@RecklessJames3 жыл бұрын
Vid was 3x longer than it shoulda been, tbh
@Nick-Nasti5 жыл бұрын
Great video but still have questions: 1. What's the difference between regular Instances and Hierarchical Instances? 2. How can you reference any of the instances in case you need to destroy one, etc? Thanks
@TechArtAid5 жыл бұрын
Hierarchical support LOD - i.e. simpler meshes based on distance from camera. To reference them just use their index, starting from zero. Instances are added in a linear fashion - if you had 360 instances, the new one will have index 360, then 361 etc. There should be a node called Remove instance, if you dragged the pin from your instance-group component.
@overnights2572 Жыл бұрын
Hi, Thanks a lot, super helpful video, but I would like to ask for a clarification, I am searching like crazy how to bake lightmaps for instanced meshes but I didn't find it. So, it makes me thing that dynamically lighted instances are less expensive then if they are baked and less expensive yet then "pure" (not instanced) static meshes. Am I right ? P.S.: I am a beginner in Unreal Engine 😉
@TechArtAid Жыл бұрын
I recall that Unreal, at least UE4, can actually assign individual instances to a lightmap atlas - but only for LOD0. You'd have to make a simple experiment to verify that. In general, it may be true in some cases that dynamic lights + instances are cheaper. That's for example the usual open-world case. These games rarely bake unique lightmaps. And cities, foliage, specifically tend to benefit from mesh instancing & modularity, keeping the memory footprint low. It also makes the work easier for artists.
@__foo__4 жыл бұрын
Whats the difference between Hierarchical InstancedStaticMesh and InstancedStaticMesh ?????
@TechArtAid4 жыл бұрын
I explained it in the video at 6:27
@ghozgaming87043 жыл бұрын
Why is it if I take your BP_Instancing_AsteroidRing and place it in an Actor, then spawn that actor into the level it crashes UE4?
@TechArtAid3 жыл бұрын
Weird! Isn't it producing too many polygons or colliders? Try using a very lightweight mesh, without any collision shapes. Have you also tried different UE versions?
@ghozgaming87043 жыл бұрын
@@TechArtAid Huh? I'm using your exact same setup. I'm literally drag and dropping your actor into an actor and spawning subsequent parent actor. Upon doing so the game crashes. Try it ;)
@JohnDaniels6 жыл бұрын
Hello Again, how would you spawn Hierarchical Instanced Static Mesh at runtime? Here is what I have so far: 1) Created a blank BluePrint 2) Added the Hierarchical Instanced Static Mesh component on the left and then choose the static mesh on the right. 3) Saved and then added the BluePrint to the level 4) In the level Blueprint I setup a Get all actors of class and then chose the Hierarchical Instanced Static Mesh BP in the level 5) Connected that to a "Add Hierarchical Instanced Static Mesh component" 6) Connected that to a the F key on the keyboard 7) When pushed the F key when playing nothing happens. Is there something special I am missing? Thank you, John
@TechArtAid6 жыл бұрын
Good reasoning :) Just replace 5. with Add Instance (not component), dragged from HISM component variable's output pin
@JohnDaniels6 жыл бұрын
That work, thank you!
@JohnDaniels6 жыл бұрын
Was able to spawn the Hierarchical Instanced Static Mesh boxes and then played in the game which is cool but when I use the Get All Actors of Class and save them in a save game object, all the actors are saved but not any of the Hierarchical Instanced Static Mesh boxes. Do you know if these Hierarchical Elements are saved in the Hierarchical BluePrint or are they saved some where else? If they are save in the Hierarchical BluePrint is there a command to save them?
@TechArtAid6 жыл бұрын
Interesting... Sorry, I never had to store them in a save file. If you find out, on Answerhub or elsewhere, please let me know
@JohnDaniels6 жыл бұрын
Ok, sure will and thank you for all your help!
@LUPITO264 жыл бұрын
Hi my friends. What is the difference between instantiated mesh hierarchy and instantiated mesh?
@TechArtAid4 жыл бұрын
Hierarchical supports LOD, among other things. There is a slide in the video
@gamingattitude4795 жыл бұрын
Hello, I'm facing a weird issue in 4.19 where a large no. Of hism changes lod simultaneously like if i have 20 hism then 10 hism change lod and then other 10, and it is completely random they are not changing lods 1 by 1 based on screen space. Can u help ?
@TechArtAid5 жыл бұрын
Do they switch in a similar manner as in my video? If yes, then that's how HISMs behave. A big group changes its level at once
@gamingattitude4795 жыл бұрын
@@TechArtAid is there a way to manage the group size or is it completely random becuse in my case if i have 30 hisms than 20 or more changes lod simultaneously Is this the way they work.
@TechArtAid5 жыл бұрын
I have wondered myself. If you have time, try if it depends on LOD distances (Screen Size) setting in Static Mesh and let me know
@gamingattitude4795 жыл бұрын
@@TechArtAid I have tried it already no success 😞 Anyway thanks for the help.
@AndreaLeganza2 жыл бұрын
Hi, which GPU was used to do these tests? best regards.
@TechArtAid2 жыл бұрын
NVidia GeForce GTX 760 (2 GB)
@Restart-Gaming3 жыл бұрын
will this work for me I have very large 16 tile height map with lots of trees and rocks mountains etc
@johnline7 жыл бұрын
very good teacher
@erdemarslan33717 жыл бұрын
great video !!
@Majestic_Graphics4 жыл бұрын
I'm abit confused, i switched out the default static mesh, to use my own but it appears invisible even though i have instanced static mesh enabled..
@TechArtAid4 жыл бұрын
Check if the material has Use With Instanced Static Mehses enabled
@TheAxebeard6 жыл бұрын
Question: is this only really useful if you need to have tons of a certain mesh in a scene at once? I'm using a ton of building meshes for a city, but they're randomly generated and the player typically can't see more than 15 at a time if they try. Would instancing help with this at all?
@TechArtAid6 жыл бұрын
+John Blaszczyk In your case it will be best to try both approaches and profile them (i.e. measure performance). Check my latest tutorials on how to do profiling. Part 1 should be enough to tell if this approach is worth trying.
@nodelayfordays80835 жыл бұрын
Your Experimental Code does not seem to work in 4.23 killing frames yes but doesn't move anything. Any thoughts? This is in regards to the Update Instance Transform.
@TechArtAid5 жыл бұрын
Thanks for letting know. I'll take a look
@wizardweapon70626 жыл бұрын
How can I make the ring shape?? I made 1 myself that has a rectangular shape... I'm sorry I didn't watch the video as the internet is too slow and the vids bot loading..
@MegaMitrandir2 жыл бұрын
it's a great technique but what about the visibility\frustrum\etc culling, is it faster to cull(hide edraw) individual sm actors(f.e. when we merge actors into a single mesh instead of constructing HISM) or instances in the HISM actor? f.e. if you have some actors in front and behind the mountain, would it be better to make 2 hism actors, or one for all of the meshes. And in what cases would it be better to simply merge them into 2 meshs? Thx
@TechArtAid2 жыл бұрын
Yes, in such obvious cases (behind and in front of a mountain) it's worth to split into distinct, localized groups. ISM doesn't support culling I think, but HISM does. It's always faster to process then separate actors. An actor has a lot of additional overhead (logic, mesh switch). Merging meshes, on the other hand, adds you memory and can't be culled in parts (except Nanite). Epic in their Matrix demo relies on HISM heavily, even despite having Nanite (both work even nicer together, btw). In latest UE 5 build you'll find a cool usability improvement - you can select and move individual instances in the viewport :)
@RahulOne16 жыл бұрын
Awesom Tutorial @Tech Art Aid. I have one question. How can I use Baked Lighting on this?
@TechArtAid6 жыл бұрын
+Rahul Verma It's meant for movable objects. But you can place Lightmass Importance Volume around it - which in 4.18 will generate a volumetric lightmap
@Restart-Gaming3 жыл бұрын
hey would this work for open world game that uses a lot of trees and rocks?
@TechArtAid3 жыл бұрын
Definitely! UE's Foliage Tool also uses instancing internally, so you can use that. You can also add Auto Grass for grass, small foliage, pebbles
@Restart-Gaming3 жыл бұрын
@@TechArtAid Not to bright when it comes to this have a very hard learning curve do you happen to have any doc or tutorial that you can point me in the right direction? Thanks so much for the responds and keep up the great work
Can the ISM be spawned with Different Static Mesh?
@TechArtAid2 жыл бұрын
One ISM component = one mesh model. That's the advantage behind the concept
@benedict66957 жыл бұрын
Sorry, this might be a dull question, but, is UE 4 is a CPU based render engine or GPU based render engine? thanks a lot!
@TechArtAid7 жыл бұрын
+Benedict Buddy It's a game engine ;) Why? building a PC?
@TechArtAid7 жыл бұрын
+Benedict Buddy The graphics are done on the GPU, in realtime. CPU only helps a bit, preparing data
@benedict66957 жыл бұрын
Thanks! @Tech Art Aid
@benedict66957 жыл бұрын
Yap, might be building it on October, until Vega is Launched :D
@TechArtAid7 жыл бұрын
+Benedict Buddy Many CPU cores will benefit you too, when baking light and compiling/packaging the project.
@MarcoChavez19406 жыл бұрын
many thanks! :)
@thecoolcarrot53776 жыл бұрын
fajny filmik dzięki! :P
@gamedevandcoding3 жыл бұрын
great video, i just wanna ask: Having a mesh with 157 triangles + lod Using Hierarchical instanced static mesh Why the instances don't have an independent lod, but they all depends from the first instance ?
@TechArtAid3 жыл бұрын
Thx :) They somehow do, but in bigger clusters. That's probably an optimization, to avoid calculating and switching LOD level per single instance
@gamedevandcoding3 жыл бұрын
@@TechArtAid thank you so much for you great help, and thank you so much for you quick reply. Your channel is amazing !
@RBFILMS7 жыл бұрын
are there anyways of making it fade into one another rather than instant snapping?
@TechArtAid7 жыл бұрын
+RB FILMS Into another LOD? It tries to do "blending" with dithered opacity mask. Translucency is not possible, because it's a different rendering mode. Check my tutorial on fixing transparency for explanation.
@mhnoni7 жыл бұрын
In your example the BP of instance mesh if you move it in a circle path does the collision of each instance will move with the object ? hope you got what i mean .
@TechArtAid7 жыл бұрын
Yes. Collision shapes (set up in Static Mesh editor window) stick to their instances. I disabled the physics, though, because it was too much for the CPU to update 35,000 physics bodies every frame.
@ammaralammouri12706 жыл бұрын
HI since i am new to unreal engine ... is this useful for arch viz scenes ?
@tjalle1997 жыл бұрын
Could you still individually vertex paint these instance meshes? I.e. it will cost an extra draw call on for example moss over rocks, but not a draw call per individually painted instanced rock.
@TechArtAid7 жыл бұрын
+Tjalle We can't paint vertices of instances in editor. Color is an attribute of mesh's each vertex. The idea of instancing makes use of storing a single mesh and duplicating it for free
@TechArtAid7 жыл бұрын
+Tjalle ... but please check this video kzfaq.info/get/bejne/gJt8i6xy1bfRqnU.html for texturing ideas that work with instancing :)
@tjalle1997 жыл бұрын
Tech Art Aid Thanks for the quick reply, I'll look at that then! in case I want more variation I'll just several separate instances meshes for my large scene then, it's still saving performance!
@night.watcher7 жыл бұрын
Thank you :)!
@mechmagazine90197 жыл бұрын
Hi can I destroy or hide the one of these rock during the collision with others. And is collision detection affects the efficient of this idea?
@TechArtAid7 жыл бұрын
+MECH MAGAZINE Difficult case but may be possible. Collision works (but as I say in the video, it has its performance cost - number of physical objects for the CPU). You'd have to detect which instance was hit... I don't know if it's possible or not. Then you'd store the transform of an instance to a variable, remove this instance and spawn a breaking asteroid (new animated actor) using the stored transform. Let me know if you have any luck with this.
@seanomik61764 жыл бұрын
Is there a way I could detect collision with a mesh and get the id I'm colliding with?
@TechArtAid4 жыл бұрын
Hm, honesty I don't know
@hiiammoot7 жыл бұрын
If you were to add 2 actors in your level and their mesh and materials are the same, will they automatically instance?
@TechArtAid7 жыл бұрын
+Moot Juh They won't. Chances are that setting them as Static and building the level will help - that's the way it works in Unity (static batching, exactly as you said: groups by materials). But I never found a proof that UE has got batching too. (anyone?) But still, it's will save you RAM and the overall number of shaders.
@cupsster17 жыл бұрын
Where can I enable automatic display of how much I moved component/actor? Is this some recently added feature? I'm still on 4.13.1 tho..
@TechArtAid7 жыл бұрын
Maybe it's only in Blueprint editor? I didn't enable anything special
@cupsster17 жыл бұрын
Yup, it looks like that, just noticed it :) Handy stuff.
@krazywulf19833 жыл бұрын
tryed to import your iles looked like it imported but nothing showed up..
@TechArtAid3 жыл бұрын
Which UE version? Did you get them from cubebrush.co/techartaid/products/sf0gww/asset-files-from-youtube-tutorials ?
@krazywulf19833 жыл бұрын
@@TechArtAid yes 4.26.2 dragged contecxt folder as described into game a whole buncha words looked like file importing dir flashed on screan then nothing
@TechArtAid3 жыл бұрын
Try dragging it with Unreal closed, through file explorer. The structure has to match (your game also has a Content folder, so just drag the files inside). If it doesn't help, can you try just opening the project? Does it work then?
@krazywulf19833 жыл бұрын
@@TechArtAid opening project directly worked.. guess i missed that when i checked it
@BoosterLifelines6 жыл бұрын
Is there a way to combine group od LODs viewed from the distance into a static mesh? Like for example I have a whole street of houses which have to be individual objects, but when I'm far away I'd like their LODs to create one big static mesh. Is that possible?
@TechArtAid6 жыл бұрын
+Booster This is a huge topic. And this is what HLODs were introduced for in Unreal (Hierarchical LODs)
@BoosterLifelines6 жыл бұрын
Exactly what I needed! I'll take a look into the documentation. Thanks!