Skip to main content
GameDev.net gamedev.net
🔒 Locked

Creating Bullet Holes

Started by Medo Mex Dec 6, 2012 at 3:47 AM 14 replies 3.2k views
Original Post
Medo Mex
Medo Mex
Hi everyone,

How do I calculate the billboard transformation to make a bullet hole at certain point on a mesh?

The mesh can be complicated (building, vehicle, interiors, etc...), so I'm looking for a way to place the bullet hole billboard on the mesh at the point the player is shooting.
stc.5421
stc.5421
hey
you can use a decal system like this

http://www.humus.name/3D/VolumeDecals.zip
Medo Mex
Medo Mex
I'm not looking to use shader now, is there is anyway to calculate the billboard position and vertex position information to set the billboard transformation according to that?
stc.5421
stc.5421
1- "p" is your intersected point

2- "v1,v2,v3" are your intersected face vertices

3- "N" is your face normal or you can calculate it from your vertices
{
A = v2 - v1
B = v3 - v1
N = normalize( cross( A , B ) )
}

4- Calculate your Up and Right vector
{
up = normalize( p - v1 )
right = cross( up , N )
}

5- "Q1,Q2,Q3,Q4" are your Quad vertices and can calculate like this
{
Q1 = p + up * scale
Q2 = p - up * scale
Q3 = p + right * scale
Q4 = p - right * scale
}
Medo Mex
Medo Mex
@stc.5421: What about the billboard rotation?
stc.5421
stc.5421
You don't need it , that create a quad align to the mesh face .
Anddos
Anddos
this is a d3d10 sample, why is do you give him d3d10 code?, plus its not even the full source code...
:)
Medo Mex
Medo Mex
@stc.5421: I have LPD3DXMESH, how can I calculate the face normal, face vertices?
stc.5421
stc.5421
Did you do intersect to your mesh by D3DXIntersect function?
Medo Mex
Medo Mex
No, I'm using Bullet Physics Raytest.
stc.5421
stc.5421
And what's your problem right now?
Can you get information from RayResultCallback ?
Medo Mex
Medo Mex
Can I get the face normal and face vertices from ClosestRayResultCallback? I'm trying to get them to use the example you gave above.
stc.5421
stc.5421
Sorry for delay , use this:

http://bulletphysics.org/Bullet/phpBB3/download/file.php?id=588
Medo Mex
Medo Mex
Hi stc.5421,

I will be using D3DXIntersect() instead, how can I get the intersected face vertices when I use D3DXIntersect()?

Also, where normalize() and cross() are located? Do you mean btVector3::normalize() and btVector3::cross()?
Medo Mex
Medo Mex
Any update guys? I still didn't resolve the issue.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.