A sort of billboard: tilting toward the camera?

I could probably do the following easily-enough with a task–and I suspect that that’s what I’ll end up doing–but it seems like something that might be better handled by a RenderEffect, if one is available. I don’t see a way of doing so right now–but it seems worth asking, in case I’m missing something:

So, is there a way to create a RenderEffect/set of RenderEffects (or similar such control) that tips a model towards the camera?

Let me explain what I mean: Imagine that you have a quad, with its surface facing along the up-axis–like a playing-card lying on a table. What I want, then, is for the quad to rotate around the vector perpendicular to the vector between the camera and the card–thus tipping it to face towards the camera. However, I want it to do this without rotating around its vertical axis.

Put another way, an axial billboard only rotates around its vertical axis; I want a billboard that rotates around any axis but its vertical.

Is there some way that I might do that with RenderEffects/other such things? None of the BillboardEffects seem to do it (although I may well be misunderstanding the “point-world” version). Perhaps some cunning use of a CompassEffect…?

Theoretically, if you previously deploy the model in the 3D editor in the right direction. And when the model node is loaded in the opposite direction when loading, it should turn out what you want.

Demo.zip (154.9 KB)

Hmm… I see what you’re going for, and that’s a good idea. It doesn’t quite do what I want–if you rotate to certain angles you end up looking at the quad’s edge. But perhaps this, combined with some further effect might do the job.

You’ve given me an avenue to explore–thank you. :slight_smile:

Okay, I managed to more-or-less achieve the effect that I wanted via two layers of BillboardEffects. :slight_smile:

However, as it turns out, BillboardEffects don’t quite work as I’d like for this particular effect. :/ So, unless another solution is suggested, I think that I’m likely going to try the task-based method.