Karabiner 98k

Prop Breakdown

Valery

valery-manekin-render-12-finish
200

Valery

3D Artist

Introduction

My name is Valery, and I want to share my journey in the world of 3D graphics with you. It all started thanks to my brother, who became my mentor and helped me navigate in this exciting field.
Since then, I have immersed myself in the world of 3D modeling and have been working as a Hard Surface and Weapon 3D Artist at Ulysses Graphics for over two years.

Goals

While working on this project, I decided to focus on improving my skills in creating weapons with wooden stocks, both in modeling and texturing. I find that texturing wood can sometimes pose a certain challenge for me, and I wanted to test my abilities in this area. After some contemplation, I chose the Karabiner 98k – a German rifle that captivated me with its appearance. To make the work more interesting, I decided to add various elements: a scope, leather stock, belt, and blade.

Software

For this work, I used the following software:

  • PureRef – References
  • Maya – Blockout, Highpoly and Lowpoly
  • Zbrush – Highpoly
  • Marvelous Designer – Highpoly
  • UV layout – UV unwrapping
  • RIZOMUV – UV packing
  • Marmoset Toolbag – Baking and Renders
  • Photoshop – Normal maps and Renders fix
  • Substance 3D Painter – Texturing

References

Before starting the modeling of the sniper rifle, I needed to gather references that would show me the structure of the Karabiner 98k.

I searched for images of the bolt, receiver, barrel, wooden stock, trigger, trigger guard, and many other elements of this weapon, as I wanted to understand the principles of its operation.

media_07_ref_01

To find references, I usually used Google Images or clicked on the first search links that appeared when entering specific queries.

When modeling the scope, I used images from the manufacturer’s page. These references are important in the modeling stage, providing valuable information about the design and structure of the rifle.

media_08_ref_02

However, when it came to the texturing stage, I realized that I needed more interesting references. I was able to find them on forums such as Greatwarforum and K98kforum, where weapon enthusiasts shared their photos.

These forums turned out to be real treasure troves of diverse references, including both old and new weapons, well-worn or practically new.

Thanks to these people, I found numerous references suitable for enhancing the realism of textures.

Also, if I lacked information or wanted to add some additional details, I used various YouTube channels, among which I can recommend T.REX ARMS or Forgotten Weapons.

Blockout

Blockout is the first stage in creating 3D weapon models. This process involves creating a rough form of the weapon without details and textures.

At this stage, I used the Maya software, where I aimed to quickly establish the general proportions and composition of the model, an essential.

I didn’t hesitate to use existing models found on the internet, utilizing a site like Grabcad. As I’m not a weapon functionality expert, I find it reasonable to use ready-made models to save time on modeling and focus on texturing later.

In modeling, I prefer using a dark material with a high Specular Color.
To achieve this, I create a standard Blinn material and set approximate values.

This makes it convenient to examine the model for good shading and smooth bevels.

media_14_block_03

After modeling the main part, I proceeded to model the remaining elements: the scope, blade, leather stock, and tape.

While working on these objects, I aimed to adhere to game development standards, ensuring a sufficient number of triangles and polygons to avoid noticeable angular and square elements.

During the modeling of the scope and blade, I employed the standard Hard Surface method, while approaching the leather stock and tape from a different angle.

Initially, I created a block out so that I had a form to work with in Zbrush.

Then, I gave the stock a natural shape, increasing the Subdivision level, applying DynaMesh, deforming the surface with the Move brush, and using the LiveBoolean operation to create necessary holes, essentially creating almost the final High Poly.

media_19_block_08

Next, I exported this mesh from Zbrush to Maya to create a block out of the leather stock, including the previously deformed elements.

I used the LiveSurface function for this and as a result, I made blockout buttstock.

The creation of the tape followed a similar process, with the exception that I used Marvelous Designer for fabric simulation to achieve a satisfactory result.

Afterward, similar to the leather stock, I used Zbrush for refinement and Maya for creating a Blockout model using the LiveSurface function.

Highpoly

When creating the High Poly model, I utilized the following method.

Firstly, I set the Hard and Soft edges, then performed automatic UV unwrapping in Maya.

Next, we exported this mesh to Zbrush and used Auto Groups by Topology And UV Continuity.

Afterward, we applied DynaMesh and observed some chaos on the screen. This is rectified using Polish by Features, which smoothens the angles.

Subsequently, we use Polish Crisp Edges to give our model a visually appealing appearance with the desired thickness of the bevel.

I strive to create a bevel of a level that can be seen from the distance at which a player might view it.

If the result satisfies me, I proceed further.

The key to this method is to use a high number of polygons and sections so that the model is smooth, and Polish by Features accomplishes its task.

It is also important to use Hard edges correctly, as it can smooth elements that should be at a right angle.

I also added detailing to the High Poly for the leather material.

media_35_high_11

The result I aim for when creating the High Poly is beautiful and accurate surface shading, smoother curves and lines, as well as bevels.

At this stage, I avoid adding various sculpting elements such as extrusions and stretches and modeling small details like dents, scratches, etc.

These elements consume time, so I add them during the texturing stage, where I have more freedom. This approach allows me to make changes or choose a different look for these elements without having to redo the High Poly.

The exception I made is for the leather stock, to which I initially added depth in areas where stitches should be, including the stitches themselves.

In the end, we have a completed High Poly model, and we can move on to Low Poly and Baking.

Lowpoly

When creating the Low Poly, I followed standard game development rules for crafting simplified geometric models with an acceptable number of polygons or triangles.

This is done to optimize game or animation performance, reduce file size, and expedite the development process.

As a weapon artist at this stage, I adhere to the following principles:

  • The primary rule is to preserve recognizability and the strength of the form. Despite simplification, the model should be clear and identifiable enough to easily recognize the object.
  • Pay attention to details that are crucial for identifying the weapon. This could include distinctive silhouettes, characteristic decorative elements, or mechanisms that make the weapon unique.
  • Emphasize critical details. Critical details, such as triggers, maybe more detailed to draw attention to important parts of the weapon.
media_40_low_03
  • Simplify non-essential details. Details that do not impact identification or the functionality of the weapon can be reduced to simpler forms to decrease the polygon count.

It is also essential to monitor polygon triangulation and optimize the mesh in necessary areas, as failure to do so may result in issues during baking or texturing.

Unwrapping

For unwrapping objects, I use UVLayout, where it’s convenient for me to cut, create, and align UV shells. After that, I set a Texel Density acceptable for me.

Following the game dev unwrapping guidelines, I used a higher Texel Density on player-visible elements, such as the scope, ring mount, receiver, and so on.

UV shells that are less visible to the player had a reduced Texel. This rule is essential for the space economy to fit as many parts as possible into one material.

After the unwrapping, I separated the UV shells into different materials and groups. I divided all elements according to standard rules (maximum packing and common logic), with exceptions being Glass and Wooden Stock.

Since Glass typically uses a separate shader, I decided to pack it into a distinct material.

media_43_uv_03

I divided the Wooden Stock into three materials due to its length. I couldn’t fit it into a single UV space without sacrificing Texel Density.

Therefore, my stock’s UV has a specific structure to enable the use of UV Tile Settings (or UDIMs), allowing me to texture three materials simultaneously. You can find more about this in this YouTube video.

For UV shell packing, I use Rizom UV, which handles this task much better than UVLayout.

The reason I don’t use RizomUV for cutting is simple—I haven’t found the time to learn its interface.

I don’t think there’s a significant difference between these two software tools in this regard, so if you have the opportunity, you can comfortably use RizomUV from start to finish without the need for Layout.

Now let’s move on to baking.

Baking

For the next stage, baking, I approach it as follows. Preparing the scene in Marmoset Toolbag for baking Normal Maps:

  • Place my 3D model in the scene.
  • Add a light source to achieve the desired lighting In Maya, I ensure proper naming for objects I plan to export to Marmoset Toolbag. By proper naming, I mean that low-polygon and high-polygon objects have identical names, except for the suffix (_low and _high).
    Such naming, upon export, automatically organizes objects into folders, eliminating the need to do it manually.

After loading the Scope, I adjust the lighting and materials. I choose the light in a way that makes it convenient to inspect the object for any defects that may need correction.

For the same reason, I add metallic properties to my material. In the baking parameters, I usually select a resolution of 4096×4096 and Samples 64x. This helps reduce artifacts and improves the quality of the final textures.

After baking the normal map, I load my scope into Substance Painter, where I fine-tune the remaining maps.

I chose a template to work with (PBR – Spec/Gloss), imported my FBX file, set the project resolution and normal map format (OpenGL), and imported the baked normal maps.

In Texture Set Settings, I select my normal map and click “Bake Mesh Maps.”

There, I choose the maps I intend to bake and adjust the following parameters: Dilation width around 6, which creates a smooth transition and controls how the mask affects surrounding areas; Enable Diffusion; and set anti-aliasing to 8×8.

In the end, we have all the necessary maps, and we can finally move on to texturing.

Texturing

Embarking on the texturing process, my initial thoughts revolved around the choice of wood representation. I had two options: using a regular wooden texture or one with rings. Most of the references were with the rings, so I decided to move in this direction.

However, I encountered difficulties in depicting these rings in a way that appeared organic and natural. After many hours of unsuccessful attempts, I stumbled upon an excellent article by Simon Mercuzot, about wood texturing.

He explained how to use the Striped mask in Substance 3D Painter as a Planar Projection. Thanks to his tutorial, I attempted to depict these rings on the tree using this method.

Due to some modeling errors (most likely), the mask did not project as I desired, so I had to manually draw many aspects.

Additionally, I applied various filters such as Blur, Warp, and Contrast Luminosity, which helped me achieve a more realistic result.

Since the mask projected correctly in one place but not in another, I had to use numerous anchor points. After setting up these masks over my base material, I obtained the following result.

Next, I needed to project masks in the same way from the top. I tried to achieve approximately the following result.

With the help of anchors, I managed to separate the stripes into different colors and add various elements such as small dots, scratches and color variations.

media_59_texture_08-scaled

Having achieved a result similar to the reference I was aiming for, I started refining the wood.

Thanks to the vast number of references I found, I can diversify my material with various elements and details.

And the other side.

Here, I can add a few things.

During texturing, I tried to follow references and not invent anything from scratch. Almost everything on this rifle was based on photos I found on the internet.

  • Variety in the Gloss map:To emphasize different small details such as scratches, abrasions, and other damages, I tried to highlight them by adjusting the Glossiness parameter.Where the weapon frequently came into contact with other surfaces or interacted with various chemicals or particles (gases, smoke, rain, oil, etc.).
media_64_texture_13
  • Variety in the Normal map:Increasing the values of Normal and Height on inscriptions and weakening them on the wood around them will produce a beautiful and diverse result that will be noticeable with the dynamic light source.
  • “Cool stuff”: As mentioned earlier, references are a crucial part.Spending extra time searching for them can yield cool photos, and incorporating these details into your weapon will better convey the story and intricacy of your work.
media_67_texture_16

Working on the scope, I also aimed to convey detailing through a variation in the Gloss map rather than the Specular.

Here, I faced a challenge when it was challenging to find modern scopes in a used condition. In this case, I tried to diversify its appearance using logos and inscriptions.

However, the scope still looked rather dull and uninteresting. Fortunately, T.REX ARMS, which I mentioned earlier, came to the rescue with its content.

I drew inspiration from many frames in their videos and website. Here, abrasions, scratches, imprints, tapes, stickers, dirt wedged into various angles and crevices—in other words, a complete set.

I attempted to diversify the glass with variations in Diffuse and Specular maps. For this, I used different textures with bright and bold colors.

Fingerprints and wear in the middle were added also, as it is common for a shooter to wipe the lens during aiming, leading to abrasions.

Moving on to other elements.

Knowing that I would be doing close-up renders, I decided to add numerous small details that emphasized my texture and showcased different characteristics of the object.

media_76_texture_25

For the barrel, which often came into contact with the Muzzle Ring in my case, I added characteristic scratches, as if the Bayonet Knife was frequently attached and detached from the rifle.

Damage and dirt that could appear on the barrel due to repeated use. Decorative elements: logos, inscriptions, and engravings.

media_77_texture_26-scaled

Deep dents, as well as numerous other engravings, can be found in interesting photographs.

media_78_texture_27-scaled

Even more scratches and wear, as well as oil on the Rear Sight.

Weapons can be covered in oil for several reasons, often related to providing protection and care for the weapon:

media_79_texture_28-scaled
  • Anti-corrosion protection
  • Lubrication of mechanisms
  • Protection against oxidation
  • Facilitation of maintenance, etc.

Therefore, I decided to add as much oil to my weapon as possible, highlighting it not only with increased Glossiness but also with color and Normal. Such an approach gives a beautiful shine that will be well visible in renders.

I deformed inscriptions and engravings using Warp and Blur filters, as well as used Anchor points to add dents to the surface using the Normal map on which they were made.

Regarding fingerprints, which are usually abundant on weapons, I personally, over the layer with masks, add an Ambient Occlusion generator that removes them from places where there would be no contact between hands and surfaces.

Regarding the Leather Buttstock, it’s difficult to say something useful. Due to a lack of experience in texturing leather and fabric, the result was not as good as the rest of the rifle.

Here, I tried to surprise with color variation and damage to the leather.

media_85_texture_34

For the buttstock, I found excellent references, from which I highlighted soft dents, long scratches, rust, and damage to the edges.

media_86_texture_35

Even more inscriptions, engravings, oil, dirt, and Specular variations on the trigger and trigger guard.

media_87_texture_36

And a little more wood.

media_88_texture_37

Rendering

I create renders in Marmoset Toolbag. This program is a powerful rendering tool for weapon artists. Before starting the rendering process, I also search for various references for inspiration. These can be both professional photographs and renders from other skilled artists.

I can recommend checking out the works of RYZIN ART. In my opinion, they beautifully capture the desired atmosphere and effectively utilize areas with shadows and reflections to add extra depth.

After finding references, you can proceed to the actual work. For this, I might additionally create a separate scene in Maya.

In this scene, it’s easier and more convenient to manipulate the position and orientation of objects, which I later import into Marmoset.

media_91_render_03

Next comes the camera setup and other parameters, including:

  • Assigning materials to each part of the models.
media_92_render_04
  • Setting up the camera position and parameters such as focal distance, distortion, flare, focus, etc.For example, for a general shot, I set the field of view to around 50mm, while for close-up renders, this value varies from 160 to 220mm.
  • Adjusting the post-effect values a bit. In the Tone Mapping parameter, I prefer to slightly modify the curve line, adding a beautiful color contrast to the render.
media_95_render_07
  • Adding a light source, adjusting its color, intensity, and direction.
media_96_render_08

I use the same HDRI maps as in Substance 3D Painter – Studio Tomoco or Studio Black Soft. These can be easily exported from there and imported into the Marmoset Toolbag.

Afterward, I add other light sources to achieve a “cool” look and replicate similar effects and moods as in the references I use.

media_97_render_09

Moving on to post-processing. Due to the incorrect position of the light source, reflections and shadows may result in an unacceptable outcome in some areas.

To fix this, I like to use Photoshop, where I play with layers and masks.

In the end, I correct the colors using Camera Raw.

Conclusion

As a result, I managed to achieve a decent outcome and received many positive reviews from colleagues and others in our community.

I am satisfied with the result, although, at each stage, many things could be improved and done more qualitatively.

Thank you very much for reading this article. I hope I can bring something new and useful, and you can use these tips and elements to create high-quality and beautiful works.