opengl+delphi 鼠标拾取(6)

2021-04-06 05:22

opengl+delphi 鼠标拾取

the objects found, but start at the second one
for i := 1 to objectsFound - 1 do
begin
// Check if the current objects depth is lower than the current lowest
// Notice we times i by 4 (4 values for each object) and add 1 for the depth.
if (selectBuffer[(i * 4) + 1] < lowestDepth) then
begin
// Set the current lowest depth
lowestDepth := selectBuffer[(i * 4) + 1];

// Set the current object ID
selectedObject := selectBuffer[(i * 4) + 3];
end
end;

// Return the selected object
result := selectedObject;
exit;
end;

// We didn't click on any objects so return 0
result := 0;
end;


{------------------------------------------------------------------}
{ Initialise OpenGL }
{------------------------------------------------------------------}
procedure glInit();
begin
glClearColor(0.0, 0.0, 0.0, 0.0); // Black Background
glShadeModel(GL_SMOOTH); // Enables Smooth Color Shading
glClearDepth(1.0); // Depth Buffer Setup
glEnable(GL_DEPTH_TEST); // Enable Depth Buffer
glDepthFunc(GL_LESS); // The Type Of Depth Test To Do

glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); //Realy Nice perspective calculations

glEnable(GL_TEXTURE_2D); // Enable Texture Mapping

LoadTexture('Sun.bmp', SunTex, false);// Load "Sun.bmp" into openGL as a texture for the Sun
LoadTexture('Earth.bmp', EarthTex, false);// Load "Earth.bmp" into openGL as a texture for the Earth
LoadTexture('Pluto.bmp', PlutoTex, false);// Load "Pluto.bmp" into openGL as a texture for Pluto
end;


{------------------------------------------------------------------}
{ Handle window resize }
{------------------------------------------------------------------}
procedure glResizeWnd(Width, Height : Integer);
begin
if (Height = 0) then // prevent divide by zero exception
Height := 1;
glViewport(0, 0, Width, Height); // Set the viewport for the OpenGL window
glMatrixMode(GL_PROJECTION); // Change Matrix Mode to Projection
glLoadIdentity(); // Reset View

gluPerspective(45.0, Width/Height, 0.5, 150.0);

glMatrixMode(GL_MODELVIEW); // Return to the modelview matrix
glLoadIdentity(); // Reset View
end;


{------------------------------------------------------------------}
{ Processes all the keystrokes }
{------------------------------------------------------------------}
procedure ProcessKeys;
begin

end;


{------------------------------------------------------------------}
{ Determines the application
e response to the messages received }
{------------------------------------------------------------------}
function WndProc(hWnd: HWND; Msg:


opengl+delphi 鼠标拾取(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:神奇的滚筒

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: