At
first, when we were told we had to do a realistic representation of
an object my initial thoughts went to either a character statue or
some kind of Star Wars model. We were told it was a good idea to do
something we would be passionate about as it would be easier to model
something we liked in greater detail. A Hulk statuette and the
Millennium Falcon both went as initial ideas until I realised they
were far too detailed to do within the time frame.
I
decided on a weapon to recreate from one of my most played games of
all time: Guild Wars 2. It's not my absolute favourite weapon
visually in game but it's near the top. The others above it were
either far too detailed or have crazy particle effects which I
wouldn't know how to create. This was the object I decided on:
I
went about sourcing these pictures from in game, and first got a good
side and top images to use as references. I then went about figuring
out what real world materials these parts could be made from.
So
it was time to start modelling. I set up my reference images in Maya
and started blocking out the basic shapes. Right from the beginning I
knew how important organisation would be so tried to name all the
pieces as best as I could. Also I tried to fit the references as best
as I could while keeping it really low poly.
Now,
the original in game model had a few of the raised panels on the
sword as normal maps. But Guild Wars is an MMO so objects will be
much lower resolution than what I was looking to create, so I decided
to model all the panels, diamonds and rivets out completely.
I
figured that I would be able to use this base mesh I had created as
the low poly in the end. All of it except the 'brass wing' part which
would have to be sculpted better in zbrush first. So for that part I
created a blocky low poly representation to take to sculpt later.
Next was to make one of each of the final details, give it some
colours for personal clarity of material before exporting.
I
imported the wing mesh first into zbrush and set up a reference image
so I could accurately sculpt the detail into the mesh.
When
that was done I imported all my other bits into zbrush. I learned
here that I should have imported them all together at the beginning
then sculpted the wing in that instance, but more on the problems and
what I learned at the end. Here though, I also learned about
importing meshes that need to be subdivided a lot. When it first came
to subdividing the big parts like the blade, they lost too much shape
through smoothing. So originally, I tried subdividing without
smoothing for the first couple of divisions, then have smoothing on
for the rest but it still didn't give the right look. Some parts were
too jagged, and so I had to go back into Maya and add edge loops
everywhere where I wanted to keep those tight edges. Then I
re-imported into zbrush to subdivide again.
Next
was so start adding the high resolution detail to the meshes. In the
references it's clear that there are a lot of scratches, dents and
some tribal markings which were all made as normals in the original.
I would do the same here but with more detail to make into normals on
my model. I went about finding some free alphas for scratches as well
as making a lot of my own. I learned how to create my own alphas and
made a number of scratches and dents which fit the style I needed by
using a big block of 'clay' in zbrush and using different brush
techniques and finally saving as a depth grab. I did this because I
wanted a bunch of chips and dents for the edges of the metal, and I
couldn't find any around that I liked.
I
added the scratches on layers so I could manage them better later on.
I also then worked on the leather grip. I used the surface noise
initially and added the hatch alpha to that, then increased the
strength to give it a lot of depth to get the desired look. I had to
subdivde this a lot of times before baking the detail. After that was
baked I added more surface noise onto the straps to replicate the
leather look, then baked that as well.
Next
came the tribal alphas. I took the reference image into Photoshop and
then sketched over each pattern in black on a new layer and tidied
up the edges best I could. I then made them symmetrical where
necessary. I then selected the black layer using the wand. I then
increased the radius of the selection by a few pixels, made a new
layer underneath and filled that slightly larger selection with a
medium-dark grey. This was so when printing the alphas they would
have a more beveled, smooth edge in zbrush.
After
all that detailing was complete (and we were up to 32 million polys),
I copied all the parts which needed to duplicated into their correct
positions. For the 'wing' part, I had to go to a lower subdivision in
zbrush and export that as the low poly. The original low poly I had
originally made in Maya was far too blocky and inaccurate.
I
learned during this positioning, that I should have done this first
in Maya. I originally thought it would be easier to import just one
of each piece, detail it and then duplicate that. It probably would
have been easier the other way round. For two reasons: the first was
that the zbrush moving is fairly inaccurate compared to Maya's so it
took longer to position than it should. The second was that now I had
to make sure the low poly Maya version had all the pieces in the
exact same (slightly inaccurate) places. Which was a pain because it
meant I had to decimate the zbrush model to put into Maya so I could
have an accurate copy. I would not have needed to do this step if I
had planned properly. Eventually, I did get it done though, then it
was time for the fun that is UV's.
So
I gradually unwrapped each piece and made sure to keep them on the
same sheets as with other pieces of the same material. The leather
handle was an exception, but I stuck it in with the brass wings and
end pieces as there was space. Unwrapping the wings was pretty
painful and time consuming to make sure there was minimal distortion
and the cuts weren't in bad places. It was difficult due to the shape
and the fact that the one I imported was probably one subdivision
higher than I should have used.
I
eventually got them all done. I then optimised the entire mesh. I got
rid of as many unnecessary edge loops as I could, cleaned it up and
managed to get the low poly down to around 18k polys. I could've gone
lower I think if I had managed the wings poly count a little better
earlier on.
Next
was exporting to bake maps. I had the high poly to the lowest I could
get it – around 22 million. I used all the settings as shown in
class in xNormal to create the maps. I had my three high poly meshes
and my 3 low poly all ready to go. I had to do a few (and very
lengthy) bakes of cavity maps to get it all looking ok. For some
reason the ambient occlusion maps came out flat grey and white rather
than had any detail. Luckily the cavity maps worked fine and looked
good.
I
then did some manual editing to the maps before taking into Quixel. I
did the high pass trick on each of the normal maps. I also had to do
some editing bits on some of the channels of the normal maps to get
rid of some weird bits.
I
first imported the brass wings mesh into Quixel and started working
on it. I had it looking really good as you see below. Unfortunately
Quixel crashed at this point and I lost most of the good stuff I had
done here. I usually save very often but you cannot save in Quixel
while editing the alphas. So very annoyed I had a break.
On
that break however I learned on a video somewhere about how you can
import multiple meshes into Quixel at the same time. So I went back
into Maya, grouped the OBJ's and exported as one single OBJ to take
into Quixel. This made it much easier. I decided to make one metal
part of the handle have some detail too which previously didn't have
any. I did this because thought it looked quite boring when it was
plain. I added a hatch pattern in NDO first and turned that into a
normal. I added some wear to it with a soft brush and continued back
into DDO.
I
went about making the brass and leather (again), honestly this time I
didn't do it as well for some reason. I found it hard to replicate
what I had done previously as you see below.
Next
was the 'titanium' parts. First I tried making them steel and
painting some darker oily spots to try and replicate the reference.
But it ended up not looking very good at all. Here is where I made
the decision to make it a painted steel material instead. That meant
I could colour the paint that duller, greyish blue like in the
reference. Also it meant I could chip the paint away in the mask
revealing the shiny steel underneath which would show some good
weathering.
I
then went about manually painting out the mask on the model. Making
sure the chipped and weathered parts were exactly where I wanted
them. I also filled in some of the areas which were too weathered and
made them painted once more.
Next
was for the blade and shiner steel parts. For this I added the same
material as the 'titanium' parts but I made the paint slightly
shinier. I then masked out all the paint on the sharp blade parts as
well as all the other steel areas like the diamonds and rivets to
make it purer steel to match the reference. I masked out a lot of the
other scuffed metal layer too, but kept some on many areas to keep
the steel from looking too clean, as it's clearly a very used sword.
After
some cleaning up of some parts I think it turned out really well:
Next
was to take it into Unreal. But first, I went back to Maya to my
original low poly and then hardened edges where I wanted them for
export as an FBX for Unreal. Now, as a disappointment to me, I didn't
really have enough time to learn Unreal properly and felt it's a
shame that I couldn't get it looking anywhere near as good in Unreal
as I could in Quixel (as you'll see). I set up as much as I could
learn within the time limit; some lights, some objects as a very
basic scene. I am looking forward to learning more of this in the
future because it's obvious that it's possible to get some very good
renders with more time available.
Here
is the final piece:
Things
I learned/Reflections on project
I learned a lot during
this project, from major organisational and decisions to small tips
and tricks. The first major thing I learned was to copy all the parts
first in Maya, like I mentioned before. I should have positioned all
the low poly pieces in the exact right place first, grouped it all up
then imported into zbrush together. Then I could have detailed all
the bits individually so; they would have been more unique and they
would also already be in the exact right positions so I wouldn't
need to do any extra work to the low poly – it would already be
there available to me when I need it later.
The next thing I learned
was to export full meshes (no holes) into zbrush. I thought I was
being clever by optimizing early, but instead it set off a whole
chain of problems. It meant that in zbrush I had gone up a bunch of
subdivisions and detailed, (and would have been too difficult to go
backwards) so I had to dynamesh to fill the holes. At the time I
thought this was ok, but it meant deleting the lower subdivisions on
the meshes which later on I needed. So in the future: no holes in
meshes, so I don't need to use dynamesh and can keep the lower
subdivisions in tact for when I may need them to export again.
As mentioned before, I
should have been more organised and made a copy of the low poly then
added edge loops of that copy and taken that into zbrush so when I
subdivided it would have kept the shape exactly how I wanted. This
way I keep my low poly completely optimized and in tact for the end,
and I still manage to keep the shape I want in zbrush.
Next was to make sure the
model in Maya is completely unified, centred with history deleted and
transformations frozen. I had a problem when trying to decimate in
zbrush at one point, because when I decimated the blade, it would
shrink and move it away from the wings part. This is because I had
imported the wings separately at the beginning to sculpt them. This
meant that they both had different origins and it created problems.
Next time I'll make sure I import everything I need together and in
the correct locations. It's amazing how many small problems can cause
knock on effects down the line.
Next thing was for UV's.
I should have unwrapped then copied each thing in Maya right at the
beginning when the low poly was first done. Not only that, but as
some of the pictures show, I have some same shells all layered on top
of each other. I figured at the time that because they were all
identical that it wouldn't be a problem, but that turned out not to
be true when baking maps. It was a problem. It meant I had to bake
some of the maps a few times as well as re-arranging some of the UV
sets to fit in the 0-1 space properly with no overlap at all. Also,
with the UV's I could have possibly tried to use less sheets, as I've
seen people get good results with larger models with many parts all
fit into the 0-1 space using a 4k map. In the future I may try that
regardless of how many parts I have.
Regarding zBrush, I
learned a couple of things. For instance it is very good for all the
larger parts and custom damage/wear like the chips and scratches on
the blade, but some of the smaller surface details can be left until
NDO/DDO. I think they are easier at applying them and is definitely
quicker to do so there rather than in zBrush. I also learned a few
other little tricks like how to create depth grabs for alphas, some
ways to export and also to merge subtools for exporting.
I learned a fair amount
about xNormal and how it reads UV's. I think in the future I will be
able to set up UV's in a much more sensible way to get the best bakes
from xNormal and minimise the considerable time it takes to bake some
of those maps. I also learned that 8k maps is completely unnecessary
after experimenting with one. I realised that 4k is sufficient for
almost all 'normal' sized objects.
I learned that if the low
poly object is good enough and accurate enough, decimation is
completely unnecessary as well. Saves time to be well organised
earlier on.
Other things I learned:
Quixel Suite 2 is amazing! So much more stable, I only had a couple
of crashes ever and it's so easy to make very high quality textures
with not much effort. I also got a pretty good feel for the PBR
workflow using it and editing masks etc. Also learned that Unreal
only imports RGB files so you have to save the greyscale files as RGB
anyway in Photoshop before trying to import into Unreal.
So in conclusion, I'm
fairly happy with the model overall. I think it looks really good in
Quixel. I'm really disappointed about how it looks in Unreal though.
I just didn't have the time to properly learn it very well to get the
most out of the PBR textures in the renderer I think. I was also
disappointed that the second brass I made looks a bit too much
plastic in the final version. It's annoying that the first one looked
so much better. Also adding to the Unreal render, there is something
weird with the roughness going on in Unreal. In Quixel, some of the
parts are completely matte almost, (and still are in the maps as you
can see in some of the above pictures taken from Quixel) but in
Unreal however, these parts are really shiny. Most of it worked fine,
there were just certain parts which haven't seemed to render properly
in UE4, the dark chunky bolts on the side of the blade are one of
them, and some of the blade noise is really rough looking when it
should be more transparent.
No comments:
Post a Comment
Note: only a member of this blog may post a comment.