Friday 25 August 2017

A Liquid State

Hey guys! Welcome back for another blog post! Sorry I missed last Friday's post. I completely lost track of the days of the week! I did a little traveling at the beginning of last week, so my Monday and Tuesday were actually Thursday and Friday. Oops. But while I was traveling I had the opportunity to look into Shopify from a designers perspective.

Shopify, in case you haven't heard of it is an online store host. If you've got a product to sell, you can sell it with Shopify. For instance I could have a CGWise store where I sell shirts and posters... That's not a bad idea actually... Anyway, they provide the platform for stores to have an online presence. They also provide tools to run your business and customize your store website. And all of this is done through a browser in an online user interface. Many customizations and tools are available for sale through their site, and some of them are free. In fact, you could actually run your store completely having paid no more than the very small cost of the Shopify subscription.

Every store uses what's called a Theme. Some of these are basic (like the default free one), and some are more elaborate. For me, it's Themes that make the experience interesting. It's the graphical representation of your store online. Or more accurately, it is the representation of your users experience, and your own, when using your store. And Themes are completely customizable, from basic editing of existing elements to the more advanced editing of code. Every Theme's code is open for you to explore and customize. Or, you can even make your own.

I see this customization option with some irony though. I have always kept computer programming as a hobby, to the point where I actively made the choice not to do it professionally. I had a hard time finishing projects, as I tended to get over involved in the graphical side of things. Having made that observation, I'm steering myself toward a graphical job. Now, as I sit here actively pursuing graphic design I find myself diving back in to the programming world. You see, the customization of Shopify's Themes is done with a scripting language.

Scripting languages can seem daunting, in fact some are almost as daunting as programming languages. But in the case of Shopify's scripting language called Liquid, it seems to fit quite nicely along side HTML. HTML, if you don't know is pretty much the basis of most of the webpages in existence. It's something that I played around with back in the 90's, but HTML itself has gone through a lot of changes. Coding in Liquid is like taking simple pieces of programmers code and putting it inside HTML. And it provides some pretty awesome results.

For me, Liquid is a synergy of graphics, user interface, and programming. It seems very natural. I'm quite looking forward to getting in to it. Shopify makes that easy to do too. Just sign up for a free developers account and you'll find there is a ton of material free for you to view and educate yourself. If you don't actually want to work from within the Shopify environment, they've open sourced Liquid, which means that it's freely available for anyone to use however they see fit.

All in all it seems that I am embracing all of my skills on my journey in graphic design. I think that's the way it should be.

--Charlie Griffin

Stick with me, and we'll get wise together. 
———————————————————————————————————————
Lord of the Flowers

Stranger on a Train

Friday 11 August 2017

SIGGRAPH 2017

Hey guys! Welcome back for another blog post! SIGGRAPH 2017 was about two weeks ago now, and anybody who's anybody in the CG world is abuzz online and offline talking about it. I was unable to go, but I hope someday I'll get the chance. In the meantime, I can catch up via the Internet.

First, a quick refresher. What is SIGGRAPH? SIGGRAPH is a conference devoted to the exploration and endorsement of new technologies in the computer graphics industry. The name stands for Special Interest Group for Computer GRAPHics and Interactive Techniques. The conference itself is run by a group called ACM SIGGRAPH. This year the event was hosted in L.A. from July 30th to August 3rd. Next year's is planned a little closer to home in Vancouver. If you're wanting to go, mark your calendars for August 12th to the 16th.

With that little bit of information, it's easy to say "Oh, that's neat." And keep moving on. But you don't want to overlook this conference. It's the biggest deal there is in the world of CG. This year more than 16,000 people attended (according to Wikipedia), and you can bet that out of those 16,000 you would have found the industry's leaders. And only some of them were at booths or giving talks.

Blender was there giving a talk on Cosmo's Laundromat and the Open Source Pipeline they used for the development. Disney animator and legend Floyd Norman was there. In fact he was the Key Note, where he talked about his career and gave advice to young animators. More about his Key Note talk can be found at http://blog.siggraph.org/2017/08/disney-legend-floyd-norman.html/. Nvidia was there with VR trained robots, and Popular Mechanics brought their deep learning robot. UploadVR was discussing the VR theatre, and to top it off, Medium announced the first ever brain-computer interface for VR. And that's only a small sampling of the talks that were available.

As you can see, SIGGRAPH has a lot to offer. And like I said, the industry leaders are all there, so the time in-between talks, and after hours events are the other big reason to go. During these times, you won't just be at the conference, you will be bumping elbows with these leaders. It's your opportunity to talk to people from Pixar, Digital Domain, Nvidia, or Blender. You might find yourself shaking hands with the established giants, or the future ones. You might find yourself exchanging business cards as a dreamer, or in deep conversation with someone you only dreamed of meeting.

Even if you attended SIGGRAPH, there's no way to have seen everything. There's just too much amazing stuff going on all at the same time. So it's time to knuckle down and catch up on what you missed out on. I've got a lot more reading ahead of me, and I'm willing to bet you do too. Here's a great place to start: http://blog.siggraph.org/2017/08/siggraph-2017-news-you-need-to-know.html/

--Charlie Griffin

Stick with me, and we'll get wise together. 
———————————————————————————————————————


Eye to Eye

Country Sunset

Saturday 5 August 2017

Reducing Polycount


Hey guys! Welcome back for another blog post! This week I finally completed a major phase of the project I'm working on. So I thought I'd share some tips I learned from that.

As part of an assignment for my 3D course, I am to model a detailed building. So I selected a church. A nice one built in the old style. As it turns out I got more detail than I bargained for.

As you continue reading, remember I am using an Open Source software called Blender for my 3D work.

I decided the best way to build the church was to build all of the components from within edit mode. Everything I've learned up until now involved starting with a generic shape and making extrusions and manipulating vertices. I may have even encountered advice against adding primaries (cubes, spheres, etc.) from within edit mode. And yet, that's what I chose to do. As I'm sure you can guess by this point, that was my first mistake. The result was a whole lot of overlapping faces, random vertices in the middle of nowhere, lots of hidden internal geometry, and many hours of clean up. I now understand the value in modeling via extrusion. Another option would have been to build things as I did, but with everything created as a separate object and then use the boolean modifier to union everything together.

The model turned out quite nice, but even now while I'm working on texturing it, I'm still finding issues with the way the mesh is constructed. I found myself asking "How did I ever put this together in the first place?" It was a rather confusing mesh. Anyone who knows anything about 3D art can tell you that the more polygons (faces) you have, the slower the final render will be. So when faced with this confusing mess of a model, I knew I had to find a way to simplify it. But doing so manually pretty much meant building the church over again, while using my original model as the blueprint... That... would be... a lot of work. There had to be a better way. And guess what? There is!

Step 1 is to save your work! If anything goes wrong with the following steps, you can always revert to the original work.

Step 2 was to Remove Doubles. This involves selecting the entire mesh in edit mode first. Otherwise Blender doesn't know what you want to work on. I actually did this a lot during the modeling process itself, but if you haven't done this by the time your model is complete, then make sure you do it before you go any further.

Step 3 is to run the Decimate modifier. What this does is it reduces the geometry of your model based on a percentage. It's a fantastic tool, but be aware it can cause a loss of detail. 1.0 (aka 100%) means there is no reduction at all. Effectively, the modifier is not in use. While 0.0 is maximum reduction, and a complete obliteration of your model. There's still a model there, but it's an extremely ugly version of your original. I imagine you will almost never want to use the maximum value, but it's good to play with it so you know the limits. Of course, none of this is permanent until you click the apply button (and of course you can undo if you decide you're not satisfied after clicking apply), so feel free to adjust the settings to get the best balance of quality vs geometry. I dropped down to 0.89 before a noticeable drop in quality. And even then, it was minimal, as you can see in the screenshots below. This single step caused the largest amount of reduction, and accounts for almost all of the difference between the Hi Poly and the Lo Poly models. This step must be applied before proceeding to the next step.

Step 4 is to use the Limited Dissolve tool. Again in the edit mode, select the entire model. Then press X to delete, and in the menu that pops up, select Limited Dissolve. In the tools section on the left of the window (you may need to press T to bring it up), there are options to customize the Limited Dissolve parameters. The chief option to change here is the Max Angle. The default of 5 degrees worked very well for me. I played around with this, but ultimately settled on the 5 degrees being optimum. Remember, that as with the Decimate modifier, there is a potential of lost detail, so make sure you find the right setting for your purposes.

Finally, the 5th and final step was to remove the interior faces which are completely unnecessary for the rendering, as they aren't even seen. To do this, we once again need to be in Edit mode, but this time we need to ensure that no parts of the model are selected to start with. Then, open the Select Menu, choose Select All by Trait and and choose the Interior Faces. With all the interior faces selected, you can now delete them (X, then Delete Faces). In my case I found that there were some faces that were in fact still necessary, so I deselected them before erasing them.

Hi Poly Model (Before geometry reduction)  - Note the Face count in the upper right
Lo Poly Model (After all 5 steps of geometry reduction) - Note the reduced Face count

When I first approached the dilemma of reducing the geometry in my model, I wasn't sure how to approach it at first. I hope that this post will help you to deal with this issue in a more efficient manner than I did.

--Charlie Griffin

Stick with me, and we'll get wise together.