Worldspace to Screenspace conversion

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 04/07/2007 at 05:21, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R10 
Platform:      Mac OSX  ; 
Language(s) :   C.O.F.F.E.E  ;   XPRESSO  ;

---------
Hi,
i'm looking for a way to convert world coordinates to screen coordinates in COFFEE. I know in cg-shader-language, I just have to multiply the local coordinates with the model-view-projection matrix.

Can I access a similar matrix inside COFFEE? Or do I have to create it all by myself (based on camera position, rotation and focal length)?

Or (even better) : is there a function, which does exactly that conversion?

Best regards,
sk.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 04/07/2007 at 07:40, xxxxxxxx wrote:

Nope, there is no such function in COFFEE. In C++ however you have several functions to convert from/to world, camera and screen space.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 05/07/2007 at 04:54, xxxxxxxx wrote:

I am quite sure that the source code for the function used internally by C4d to do world->screen projections is avilable somewhere in the C++ API docs. Using that as reference, implementing a corresponding function in COFFEE should not be that hard.

If you can't find it, let me know and I'll look it up for you.

/Filip

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 05/07/2007 at 08:40, xxxxxxxx wrote:

Totally forgot about this. It´s in the GetViewParameter description. At least that´s the only source I know.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 05/07/2007 at 08:49, xxxxxxxx wrote:

Quote: Originally posted by FilipM on 05 July 2007
>
> * * *
>
> Using that as reference, implementing a corresponding function in COFFEE should not be that hard.
>
>
> * * *

Nice tip, but it seems like the BaseView-class, which implements the WS() method is proprietary or something. At least I found only the header-file in the SDK, not the source itself. If you find out more, please let me know.

For this project a C++ plugin would only be the last resort, so I fear I have to create the matrix myself. I found a nice tutorial to calculate the projection matrix (http://www.codeguru.com/cpp/misc/misc/math/article.php/c10123__3/), the rest should be relatively easy. But a built-in approach would be much more desirable, of course!

Thanks,
sk.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 06/07/2007 at 12:53, xxxxxxxx wrote:

As I said, it´s in the GetViewParameter description of the C++ SDK documentation!

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 06/07/2007 at 13:40, xxxxxxxx wrote:

Thank you, guys...
I simply overlooked that part. So after a good deal of tweaking, I've got a more or less working plugin. 🙂

I haven't found out, how to react to changes in the focal length, though... This negative-z value seems to be hard-coded to the standard-issue 36mm camera. But I guess that'll be not that much of a problem, and it's not that important anyway.

greets,
stefan