# Bow Making: How to Visual Guide

## Setup
Pick Subject and find a good reference
I used Auriel's Bow from Skyrim as reference
Add reference image to the world, turn image opacity down, move it slightly off from world center

Add a cube, mirror modifier the Z axis

## Modeling
When modeling the bow, work in a view that is flat to make the reference photo easiest to work with

Also keep xray mode active with viewport shading on in order to work most effectively to model the base mesh and keep all verts on a plane in sync
- general workflow to model base mesh is extrude, move, scale, repeat

Keep extruding, scaling, and moving verts (being sure not to spawn duplicate renegade verts) to trace the outline. Be sure to keep things labeled properly as you work

Once we are happy with the base mesh, shade smooth, then get setup for shading and textures

## Shading and Textures
I like to stay in Layout tab and drag a screen out set to Shader Editor (instead of going into shader tab) but setup your work space however you like

Under Render Properties, I like to work in Cycles with feature set to Experimental and device set to GPU Computer. I turn samples down to 100. You can work in whatever render engine you want, but Cycles is better for procedural texturing

Once you are done shading the first piece, move on to shade the next one.
***Note: the procedural texture I used here is a little complex, I will create a step by step guide on it and link it here; right now do not have it ready. Sreenshot of node setup is below tho

For the second piece of of the bow texture, I duplicated the first one, changed the Brick node in it to a Magic node, then adjust various values until I thought it looked oke

## Finishing Details
Add a cylinder and a torus (mirror on Z) and scale / rotate / move into position so the string / string holder looks good to you
- I separated textures of the torus and string, but that is up to you. I also have both torus and cylinder as one object

### Baking the Bow
If using procedural textures like I did, you need to bake the images into one texture
Merge everything together, setup 3 window workspacce. Layout, Shader Editor, and UV Editor

In Object Data Properties for the merged bow, add a new UVMap, name it "Baked" or whatever else you want to name it

Add a blank Image Texture node to a material. Create new image, name it "BowBake" or something else, set resolution to 1024 x 1024 (or higher if optimization isn't an issue), set UV Editor to the newly created "BowBake" blank. Copy the BowBake Image node, paste it into the shader editor for each material on your bow. Then select the bow, go into edit mode, select all verts, and hit U to "UV Unwrap" -- I usually use Smart UV Project but you can use whatever gives you best results.

In render settings change to cycles, change samples to 100, turn off noise threshold under render

Still in render settings, scroll down to Bake. Turn off Direct and Indirect, then we are ready to start baking.
- baked images must be saved
- depending on object, multiple bakes will be needed
- I usually use Diffuse or Combined for bake 1, then Normal for bake 2, then potentially Emit or Transmission for Bake 3 -- gotta see what gives best results (results of bake will show in UV Editor)

In the UV Editor Screen, click the Image* button (* means an active image there has not been saved) and save the image in a location you can retrieve. This will be saved as "BowBake"
- the next bake will be to bake the Normal Data and it will be saved as "BowBake1"
- unless optimization is not an issue, be sure to save the images from baking as JPEGs rather than PNGs (smaller file size, better optimization)
- note in the picture the UV Editor is now displaying the results of the Combined bake I did (I will also try Diffuse to see if that gives me better color, sometimes Diffuse is better, sometimes Combined is better depending on what you are trying to bake)

Change bake type to Normal, note after bake the Normal Data bake is now displayed in UV Editor

Go into Material Properties. Create a "Fake User Profile" for all of your materials by selecting them in the window then activating the Shield button for each material you have

Create a new material called "Bow Bake" or something else. Plug an empty Image Texture node into Base Color and Normal inputs of BSDF. Add a normal map between the normal input and image node (color goes into color). Load the first image from the Bake into the top image node, and the second image (the normal data) into the bottom image node

Change all of your materials (make sure they are protected with the Shield) to this newly created "Bow Bake" material -- note that the bow looks kinda messed up now

It is messed up becaused we baked everything into the "Baked" UVMap we created earlier. Go to the UV Settings, remove the default UV Map, and it will fix align to its proper UV.

Note for the above screen shot: image baking results in lost quality, and sometimes things come out to be darker than you desire / intended. To fix this when it happens, as it did here, I go into the baked material and add a third node (duplication of the base color node) and plug it into emissions.
Now you can go back into Material Properties and get rid of all of the other textures, keeping just 1 which will cover the whole bow. We don't get rid of them until this point because we may need to go back and rebake occasionally and its a pain in the ass if you need to do that and you removed all of the textures prior to this point.
### Armature for Bow
I start by separating the string from the main mesh of bow but parenting the string to the bow

In Edit Mode add a single bone, extrude it along the outline of one half of your bow

Duplicate the string of bones, rotate it to inverse position, align it properly

Extrude from center along Y axis, move the new bone to align with the string position

Parent the main mesh of the bow to the armature "with Automatic Weights" -- then do the same for the string to the armature. If done correctly, rotating your bones along the main mesh will deform the bow, and moving the string bone will deform the string

Now in Edit mode, extrude the center circle bone to make a "main" bone for the rig. select the two center bones and parent them to the newly extruded main bone with the "Keep Offset" option
