Code: Select all
btVector3 rayTo = cameraPosition+viewDir*1000.0f;
btCollisionWorld::ClosestRayResultCallback rayCallback( cameraPosition, rayTo );
g_rkWorld->rayTest( cameraPosition, rayTo, rayCallback);Code: Select all
btVector3 rayTo = cameraPosition+viewDir*1000.0f;
btCollisionWorld::ClosestRayResultCallback rayCallback( cameraPosition, rayTo );
g_rkWorld->rayTest( cameraPosition, rayTo, rayCallback);Code: Select all
btVector3 rayStart = cameraPosition;
btVector3 rayEnd = /*cameraPosition+*/viewDir*1000.0f; <- do I have to add cameraPosition?
// perform ray cast
btCollisionWorld::ClosestRayResultCallback rayCallback( rayStart, rayEnd );
g_rkWorld->rayTest( rayStart, rayEnd, rayCallback );Hi,vexator wrote:hi erwin, i got it working by upgrading to 2.76 and using btBvhTriangleMeshShapes for my static geometry. I was still using the old triangle mesh classes. picking now works, but the casted rays do not always seem to be right.
first question: is rayEnd only the direction vector, or should it also include the start offset?
Code: Select all
btVector3 rayStart = cameraPosition; btVector3 rayEnd = /*cameraPosition+*/viewDir*1000.0f; <- do I have to add cameraPosition? // perform ray cast btCollisionWorld::ClosestRayResultCallback rayCallback( rayStart, rayEnd ); g_rkWorld->rayTest( rayStart, rayEnd, rayCallback );
then rayStart=cameraPos and rayEnd=rayStart+viewDir*distancevexator wrote:yeah but if i want to shoot a ray from the camera position along the view direction, then it should be right like this, shouldn't it?