{"id":577,"date":"2022-06-11T13:20:38","date_gmt":"2022-06-11T13:20:38","guid":{"rendered":"https:\/\/www.canosielabs.com\/blog\/?p=577"},"modified":"2022-06-11T13:23:46","modified_gmt":"2022-06-11T13:23:46","slug":"strawberries-with-blender","status":"publish","type":"post","link":"https:\/\/www.canosielabs.com\/blog\/strawberries-with-blender\/","title":{"rendered":"Strawberries With Blender"},"content":{"rendered":"<div class=\"boldgrid-section\">\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-md-12 col-xs-12 col-sm-12 col-lg-12\">\n<p class=\"\">In this article, I want to talk about some tips relating to my video on making photorealistic strawberries in Blender.&nbsp; This isn&#8217;t a step-by-step tutorial but rather I wanted to share some additional tips that I didn&#8217;t have time to include in my video.&nbsp; So if you haven&#8217;t watched it yet, check it out first.<\/p>\n<p class=\"\"><a href=\"https:\/\/youtu.be\/7TkAX9_bv9o\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/canosielabs.com\/img\/articles\/3d\/sb\/thumbnail.png\" alt=\"\" width=\"600\" height=\"386\"><\/a><\/p>\n<h2 class=\"\">Why Geometry Nodes<\/h2>\n<p class=\"\">In my strawberry video, I talk about creating Strawberries in Blender.&nbsp; Using geometry nodes is convenient because we can adjust node values easily to distribute both divot templates and seeds across our project procedurally.&nbsp; The important concept is that we need to distribute seeds around our object to create an ambient occlusion map.&nbsp; How we do this is up to us.&nbsp; Geometry nodes makes it fast and easy.&nbsp; However, because we&#8217;re distributing seeds randomly across the surface, we need a large amount of vertices to create smooth holes&#8230; and that&#8217;s where the problem arises.&nbsp;&nbsp;<\/p>\n<p class=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-583 aligncenter\" src=\"https:\/\/www.canosielabs.com\/blog\/wp-content\/uploads\/2022\/05\/lots-of-mesh.gif\" alt=\"\" width=\"800\" height=\"410\"><\/p>\n<p class=\"\"><span style=\"font-weight: 400\">With too few vertices, if the deepest point of the divot does not align with a vertex, we get odd shaped and less pronounced divots.<\/span><\/p>\n<h2 class=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-588 aligncenter\" src=\"https:\/\/www.canosielabs.com\/blog\/wp-content\/uploads\/2022\/05\/bad-mesh.gif\" alt=\"\" width=\"800\" height=\"410\"><\/h2>\n<h2 class=\"\">Why Not Geometry Nodes<\/h2>\n<p class=\"\">The geometry node modifier on a object with such a large mesh causes performance problems and this is especially evident if you try to move the object around your layout.&nbsp; In addition, we are also doing this computation for the backside of the berry which may not be seen in your renders.&nbsp;&nbsp;<\/p>\n<p class=\"\"><span style=\"font-weight: 400\">If we manually choose which vertices to place divots, we make that vertex the deepest part of the divot, we can create a smooth divot but with less faces.&nbsp; &nbsp; With this, we can reduce the number subdivisions by a 2 or 3 factors.&nbsp; Just group those vertices into a group and use the particle system to create instances on those points instead of geometry nodes.<\/span><\/p>\n<p class=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-587 aligncenter\" src=\"https:\/\/www.canosielabs.com\/blog\/wp-content\/uploads\/2022\/05\/small-mesh-ok.gif\" alt=\"\" width=\"800\" height=\"410\"><\/p>\n<h2 class=\"\">Particle Systems<\/h2>\n<p class=\"\">The solution to solve performance issues is to make the instances real, which is slightly easier using particle systems.&nbsp; This is specially the case when you are distributing actual seed objects because with particle systems, because each individual object keeps it&#8217;s original normal map.<\/p>\n<p class=\"\">The obvious pain point comes if you need to adjust your seed distribution.&nbsp; Once you make the instances real, there is no going back.&nbsp; Not only will you have to re-generate the AO map, but you will have to go to a backed up version of your object when the particle system has not yet been distributed &#8211; and that&#8217;s a major pain.<\/p>\n<p class=\"\">Personally, each time I make a new strawberry, I use geometry nodes to generate first version.&nbsp; Once I get a result I like, I remove the geometry nodes and apply the other modifiers.&nbsp; After I go back and manually distribute seeds on in the divots using particle systems.&nbsp; While the strawberry is still super high ploly, on my system, that&#8217;s yet to cause a problem in any of my scenes.&nbsp; The key is to remove the geometry node modifier once you are done with it.<\/p>\n<h2 class=\"\">Conclusion<\/h2>\n<p class=\"\">This method requires a lot of trial and error to get the divots to be the right depth&nbsp; In addition, every scene will require a slight different shander subsurface scattering and translucency setup depending on the lighting.&nbsp; That&#8217;s why I think it&#8217;s not a great method for pure beginners.&nbsp; That being said, I think this produces some really nice results.&nbsp; It does take some tweaking but if you really need close up shots of photorealistic strawberries, I&#8217;ve been able to create some real nice renders.&nbsp;&nbsp;<\/p>\n<p class=\"\">So I hope this gives you some ideas on your projects!<\/p>\n<h2 class=\"\">Strawberry Material<\/h2>\n<p class=\"\">If you are following the video and want to download the strawberry shader setup and geometry node setup, you can download them here.&nbsp; No actual berry models here, I just provided the node setup in case something in the video isn&#8217;t clear.<\/p>\n<p>https:\/\/www.cgtrader.com\/free-3d-models\/food\/fruit\/strawberry-material-samples-for-video<\/p>\n<p class=\"\">&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this article, I want to talk about some tips relating to my video on making photorealistic strawberries in Blender.&nbsp; This isn&#8217;t a step-by-step tutorial&hellip;<\/p>\n","protected":false},"author":3,"featured_media":578,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bgseo_title":"","bgseo_description":"","bgseo_robots_index":"index","bgseo_robots_follow":"follow","footnotes":""},"categories":[1],"tags":[],"class_list":["post-577","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/posts\/577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/comments?post=577"}],"version-history":[{"count":9,"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/posts\/577\/revisions"}],"predecessor-version":[{"id":598,"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/posts\/577\/revisions\/598"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/media\/578"}],"wp:attachment":[{"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/media?parent=577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/categories?post=577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.canosielabs.com\/blog\/wp-json\/wp\/v2\/tags?post=577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}