View Full Version : sprite render
donvlatko 04-16-2004, 09:06 AM hello people
I have a problem with sprite particles, well more a effect problem.
I have made a car who is moving, that is normal;) and than I make dust effect on it tires.
The sprite give best look of a cloud of dust but I have one little problem witch I have put in a zip. You will see that my sprite look bad on a
ground, they are going thru, that is because I use big scale on them because of good look.And yes I have made a collide with ground.I know this must happend because of nature of sprite.
Is there a way I can avoid this ugly effect???
thanks
|
|
codenamejyn
04-16-2004, 06:18 PM
I'm not a professional compositor but if I'm in that situation I would give the post process a chance to tweak it right. You would get away with it....
donvlatko
04-17-2004, 08:03 AM
yes, I have find one solution useing a compositing program. I was hopeing that there is a way i could fix that in Maya....
Pin_pal
04-17-2004, 11:41 PM
Could you post a jpeg? I don't know about this other format...
donvlatko
04-18-2004, 08:07 AM
I have post the zip. file and in there you have a jpg format.
WhiteRabbitObj
04-18-2004, 10:46 AM
The collision point for sprites is at the midpoint of the sprite. To avoide it intersecting with the ground, duplicate your ground plane, turn off primary visibility, make that the collision object, and move it up in Y approximately half the size of your sprites. Now, they are intersecting that new groundplane and on your real ground plane they should be skirting over the surface. You can turn off shading for that new ground plane or probably just hide it so that you can work normally.
donvlatko
04-18-2004, 04:53 PM
thanks WhiteRabbit!!!I thought of that trick, but my sprite need to emit right tick above ground, you know dust and tire..
jeavus
11-16-2004, 05:51 PM
Hi donvlatko,
I am having the same problems here as well... The invisible ground plane doesn't work for me either, as my sprites change in scale through time. Did you or anyone else find a solution to this?
Thanks,
Jeavus
donvlatko
11-17-2004, 07:29 AM
no man I did't find a solution:(
failure
11-17-2004, 09:44 AM
what would *correct* effect look like?
westiemad
11-17-2004, 11:46 AM
could u scale the sprites up over time? spriteScaleXPP += 0.01?
or you could apply an opacity to particles below a certain level, or say if they are under a set height 20% through their lifespan kill them.
try using a surface emitter, inside the wheel aimed up and to the back, and a slight amount of negative gravity to carry them up.
or u could try using a per particle offset so the minimum the particles will appear is half their hieght
Some random ideas in no order.
AnDy
donvlatko
11-17-2004, 05:39 PM
hey westiemad thanks, I have try something like that before but at the end you still have some sprites going thru ground, this is a problem if you scale them to get a nice blending betwen sprites. I was thinking a lot about this and I think that combination of your solution could fix some stuff a bit but at the end you have to play with compositing and than you lose details on ground...I wonder how do they do this stuff in big studios:)
westiemad
11-19-2004, 05:25 PM
at least if you render the sprites out, depending on how far away the camera is from them you might not notice and the rest you can mask out.
oceanq
11-22-2004, 02:56 AM
this is an useful question that many guys will met this problem when they to do this, i'm also confused, how about the same problem in the game engine, how solve? they did?
donvlatko
11-22-2004, 08:51 AM
I am working in game industry and this kind a problem is not solved yet, as I know:)I think that this is even harder in game engine. We have use a lot of sprites stuff and blending is one way but when it come in contact to ground than you have problem:)We use to see this stuff in games and we get us to, so for a games this can go on for some year, they will solve this some day that is for sure, but for now it can pass;)
mindymike
11-22-2004, 10:02 AM
Just write a simple expression on ground plane that will move it up and down inside one frame, like "ground.ty = (frame%1);".
Then render it with motion blur turned on, that will smooth out contacting edge, making it almost invisible.
failure
11-22-2004, 11:42 AM
Sprites are camera-dependent. Their bounding box changes with view. So it's hard to tell how exactly would they appear in the shot and where are the bounds to check against ground plane.
For non-realtime rendering, best solution is to composite. You need to do it anyway if you combine hardware sprites with rest of the scene done in sw.
For realtime applications such as games do a realtime equivalent of "compositing" by turning off the z-writes and z-test when outputing particles.
Or use z-write offseting feature in your realtime rendering api ( glPolygonOffset in opengl ). I'm not sure if it works with hardware "point sprites" though.
donvlatko
11-23-2004, 08:23 AM
mindymike, I don't think that will solve problem. what if I have something on ground?
failure, yes, compositing is only aolution, inside maya there is no way and that is for sure!
mindymike
11-23-2004, 09:56 AM
i solved alot of similar problems in that way. just adding an expression that moves or scales objects that make artefacts visible. of course it have to be completely separated render pass and it needs post compositing...
hi there,
Below is my solution on this:
hide the groud plane in hardware sprite pass's geometory mask. and do render an additional groud plane z-depth pass. use it to tweak the sprite pass's alpha channel in the compositing package. Although complecated, at least this solution can produce acceptable effects.
Sorry about my english, wish u guys understand what i mean ^^
donvlatko
11-24-2004, 07:55 AM
no matter if you have something on a ground,example, car that is on move>?
how do you compositit that, can you explain little bit more?
mindymike
11-24-2004, 11:59 AM
for compositing, you should turn on geometry mask of course, i forgot to tell it. and do not forget to use hardware alpha.
if you have visible artifacts on car's body, you should animate scale on it the same way as translating ground.
of course on beauty pass without sprites you should turn this expressions off.
then just put sprites with "over" a beauty pass.
donvlatko
11-26-2004, 08:20 AM
I need to try your solution, if it give result than cool, that ould be more than welcome because I went crazy sometime to find a solution:)
thanks man
mindymike
11-26-2004, 10:47 AM
expression template is
float $amplitude = 2; // change to value that fits your scene
float $oldTranslateY = 5; // change to value that fits your scene
object.translateY = (frame%1)*$amplitude + $oldTranslateY;
the same way is for scale or translate for any object that have visible artifacts of sprite intersection
donvlatko
11-26-2004, 12:26 PM
wow thanks man!
can you post a example scene?:)
alesmav
02-20-2005, 01:35 AM
Just a question...
Why don't you use "position" attribute to offset the particles from the ground as they are getting bigger??
ALES
donvlatko
02-20-2005, 04:35 PM
i will have to try that,but I don't think it will give ant results
alesmav
02-20-2005, 09:40 PM
I was thinking something like:
----
vector $pos = position;
position = <<$pos.x, (put offset value for Y position here), $pos.z)>>;
----
I guess the offset value would be half of the current sprite size . First you check the size of the sprite (spriteScaleYPP) and then use this value to offset the sprite from the ground in the runtime expression. This way it shouldn't intersect the ground anymore...
ALES
MikeRhone
02-20-2005, 11:27 PM
This is the unfortunate limit of working with sprites... if you could do 2d projections on sprites, you could set the projection2d node just above the ground plane and use that to control the alpha of the sprite. This way, where it contacts the ground is faded sharply up. This would be the ULTIMATE sprite solution, but I've never been able to get it to work correctly. It would also be nice if Maya allowed for a spritePivotPP attribute. Either of these would rock, however, NEITHER of these work (If you come up with a solution using the above, please let me know!)
If it is absolutely nessesary for you to do it all in Maya, the best cheat I use is to grab the particle system, slap a lattice on it and lift it into position by eye. Be sure to set the lattice falloff to "All" so stray particles dont pop around. Its easy to eyeball it and you dont have to mess around with position<<$x,$y,$z>>;
Best of luck, and plese let us know what you come up with!
CGTalk Moderation
02-21-2006, 12:00 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.