2
$\begingroup$

I'm creating a livery for a car model, and I want to do this in 3D using Blender. I have the mesh loaded into a Blender file, and I can paint on it fine.

Once I have defined a base livery, I create another image to use as a "decals" layer. This layer should contains logos, numbers, names and all the other stuff you usually see on race cars. Currently, I simply draw them on the "decals" image, and I use 3D objects as a reference for the position of the stencil (place a cube, scale it so it matches the aspect ratio of the image, place it so that a face of it shows where the stencil should be placed), but then I have to manually place the stencil, and to do it again on the other side.

While this is enough for the image resolution I need, it is still time consuming and makes it hard to "just try" and experiment.

I thought about making my decals using actual 3D objects, texturing those with the decal images and baking them into the result, but I can't change the UV mapping of the car mesh, and matching the UV mapping of the decal objects with the UV mapping of the car object would kinda defeat the point of painting the livery in 3D.

Is there a better way?

EDIT

This is what I use now: The grey blocks' small sides represent a decal. If I go into orthogonal side view, I can manually line up the stencil and paint on the car. Once I paint, if I wanted to move it or resize it I'd have to erase it and paint it again.

Instead, this is what I would like to have (or something similar): The plane is textured with the decal image (here a simple checkered image), and it can be moved around.

Ideally, I'd like a way to "project" the plane's texture onto the car's texture, but in a non destructive way, so that I can move the plane around or resize it and "regenerate" the car's texture.

AFAIK, in order to bake I'd need to join the meshes and re-UV-map the joined mesh, but I can't alter the car's UV (it's an asset of a game), and I don't know how to "burn" the plane's texture on the car's texture in a different way.

$\endgroup$
6
  • 1
    $\begingroup$ for decals the best is probably to create a second UV map for the decals you want to project, create a UV Map node in the material and put it before the Image Texture that has your logo loaded, mix the Image Texture with the rest of the material, use the Alpha output as a factor in the Mix Shader $\endgroup$
    – moonboots
    Oct 11, 2021 at 12:48
  • $\begingroup$ I'm not sure I get how I would "project" the UV of the decal onto the UV of the car. What I would like to get is a 3D object that I can move, and the decal moves on the car accordingly... $\endgroup$
    – Simone
    Oct 11, 2021 at 13:04
  • $\begingroup$ could you please show some screenshots so that we understand what you're trying to do and why it doesn't work? $\endgroup$
    – moonboots
    Oct 11, 2021 at 13:36
  • $\begingroup$ I've added pictures to clarify what I mean. I hope it's clear $\endgroup$
    – Simone
    Oct 11, 2021 at 15:20
  • 1
    $\begingroup$ I'm not sure I understand your need, I hope someone will understand better than me, but would something like this (decal controlled by an empty) satisfy you? zupimages.net/up/21/41/mye3.gif $\endgroup$
    – moonboots
    Oct 11, 2021 at 15:25

1 Answer 1

5
$\begingroup$

You could create an empty as controller:

enter image description here

Here is the Shader Editor. Create your logo, keep the background transparent, load it into an Image Texture node. Use the Texture Coordinate "Object" output, then select the empty at the bottom of the Texture Coordinate node in order to control the location/rotation/scale of your logo. Set the Image Texture node to Clip instead of Repeat. Mix the logo with the rest of your car texture in a MixRGB, use the Alpha output of your Image Texture as a factor:

enter image description here

This method will project the exact same image on both the 2 opposite sides. If you need a logo to be reversed on the opposite side, assign to these faces a copy of the same material, except you need to rotate 180° on the correct axis in the Mapping node, here is what it gives:

enter image description here

EDIT BY OP

To answer my last question (how can I get a reversed version of the logo without duplicating the empty or the material?), here is the node I used - only the part of it that contributes to the Mapping node:

$\endgroup$
6
  • $\begingroup$ Thanks a lot! This is a great answer! Just one more thing: I have a wide image, but it is mixed as if it was square. Do I need to scale the empty so that it matches the image's aspect ratio? $\endgroup$
    – Simone
    Oct 11, 2021 at 16:15
  • $\begingroup$ you can either scale the empty on the axis you want or play with the Mapping node values $\endgroup$
    – moonboots
    Oct 11, 2021 at 16:19
  • $\begingroup$ Finally, can I have a mirroring on the X axis? If I place "LOGO" on the left side I get "OGOL" on the right side... $\endgroup$
    – Simone
    Oct 11, 2021 at 16:23
  • $\begingroup$ oh yes you're right so maybe you need to give another material and empty to the opposite side? $\endgroup$
    – moonboots
    Oct 11, 2021 at 16:26
  • $\begingroup$ I guess I could do something with the Geometry's X value, but I'm not sure how to do that. I'll give that a try, since I'd really like to be able to use the same empty. Thanks a lot for now! $\endgroup$
    – Simone
    Oct 11, 2021 at 16:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .