• 大小: 603KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: 其他
  • 标签: OpenGL  

资源简介

OpenGL_射线选择初探 在 perspective 中 射线的生成 代码解释 图文参考 OpenGL_射线选择初探 在 perspective 中 射线的生成 代码解释 图文参考 OpenGL_射线选择初探 在 perspective 中 射线的生成 代码解释 图文参考 OpenGL_射线选择初探 在 perspective 中 射线的生成 代码解释 图文参考

资源截图

代码片段和文件信息


#define GLEW_STATIC
#include 

#include 

#include 
#include 
#include 

#include 

#include “Shader.h“
#include 

#include 
#include 

#pragma comment(lib “SOIL.lib“)

#pragma comment (lib “opengl32.lib“)
#pragma comment (lib “glew32s.lib“)
#pragma comment (lib “glfw3.lib“) 
#pragma comment (lib “glfw3dll.lib“) 
#pragma comment (lib “glew32mxs.lib“)
#pragma comment (lib “assimp.lib“)

#define  WIDTH 500
#define  HEIGH 500


glm::vec3 cameraPos = glm::vec3(0.0f 0.0f 50.0f); // 相机距离原点50
glm::vec3 cameraTarg = glm::vec3(0.0f 0.0f 0.0f);
glm::vec3 cameraUp = glm::vec3(0.0f 1.0f 0.0f);

glm::vec4  mousePos;

GLfloat fRotateAngle = 0.0f;

void keyFun(GLFWwindow* pWnd int nKey int nScanCode int nAction int nMode);
void mouseFun(GLFWwindow* pWnd int int int);
void cursorFun(GLFWwindow* window double x double y);


//////////////////////////////////
int main()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR 3);

glfwWindowHint(GLFW_OPENGL_PROFILE GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_RESIZABLE GL_FALSE);

GLFWwindow* pWnd = glfwCreateWindow(WIDTH HEIGH “OGL Geometry Shader“ nullptr nullptr);
glfwMakeContextCurrent(pWnd);

glfwSetKeyCallback(pWnd keyFun);
glfwSetCursorPosCallback(pWnd cursorFun);
glfwSetMouseButtonCallback(pWnd mouseFun);

glewExperimental = GL_TRUE;

glewInit();

glViewport(0 0 WIDTH HEIGH);

#if 0
// 在原点处绘图即离相机50 将Y值稍微缩小便于显示
GLfloat cube[] = {
-49.0f -49.0f -0.0f   49.0f -49.0f-0.0f
49.0f -49.0f-0.0f  49.0f 49.0f-0.0f
49.0f 49.0f-0.0f -49.0f -49.0f -0.0f
-49.0f -49.0f -0.0f   -49.0f 49.0f-0.0f
-49.0f 49.0f -0.0f   49.0f 49.0f-0.0f
-49.0f 49.0f -0.0f  49.0f -49.0f -0.0f
};
#else
// 在z -50 处绘图即离相机100将Y值稍微缩小便于显示
GLfloat cube[] = {
-99.0f -99.0f -50.0f   99.0f -99.0f-50.0f
99.0f -99.0f-50.0f  99.0f 99.0f-50.0f
99.0f 99.0f-50.0f -99.0f -99.0f -50.0f
-99.0f -99.0f -50.0f   -99.0f 99.0f-50.0f
-99.0f 99.0f -50.0f   99.0f 99.0f-50.0f
-99.0f 99.0f -50.0f  99.0f -99.0f -50.0f
};
#endif

GLuint nVAO nVBO;
glGenVertexArrays(1 &nVAO);
glBindVertexArray(nVAO);
{
glGenBuffers(1 &nVBO);
glBindBuffer(GL_ARRAY_BUFFER nVBO);
{
glBufferData(GL_ARRAY_BUFFER sizeof(cube) &cube[0] GL_STATIC_DRAW);

glEnableVertexAttribArray(0); // vertex
glVertexAttribPointer(0 3 GL_FLOAT GL_FALSE 0 (GLvoid*)0);
}
glBindBuffer(GL_ARRAY_BUFFER 0);
}
glBindVertexArray(0);

Shader shader(“./Shader/vertex.vx“ “./Shader/frag.fg“);
shader.userShaderProg();

glm::mat4 model; // 模型矩阵
glm::mat4 view; // 视图矩阵

// 投影矩阵 视角 宽高比 近  远截面
// 侧视图
glm::mat4 proj = glm::perspect

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1333  2017-03-01 16:50  OGLGeometryShader.sln

     文件       7842  2017-09-19 01:08  OGLGeometryShader\main.cpp

     文件       7947  2017-08-03 16:43  OGLGeometryShader\OGLGeometryShader.vcxproj

     文件       1304  2017-08-03 15:13  OGLGeometryShader\OGLGeometryShader.vcxproj.filters

     文件        146  2017-09-13 01:22  OGLGeometryShader\Shader\frag.fg

     文件        527  2017-04-09 02:21  OGLGeometryShader\Shader\geo.geo

     文件        298  2017-09-13 00:14  OGLGeometryShader\Shader\vertex.vx

     文件       6071  2017-03-02 15:14  OGLGeometryShader\Shader.cpp

     文件        498  2017-03-02 15:57  OGLGeometryShader\Shader.h

     目录          0  2017-09-13 01:22  OGLGeometryShader\Shader

     目录          0  2017-09-19 01:08  OGLGeometryShader

     文件     321942  2017-09-19 00:44  OpenGL_射线选择初探 (1).jpg

     文件     338052  2017-09-19 00:53  OpenGL_射线选择初探 (2).jpg

----------- ---------  ---------- -----  ----

               685960                    13


评论

共有 条评论