资源简介
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
相关资源
- OpenGL-- Shader 颜色 光照 5 多光源 基础
- 通用扫描线填充算法OpenGL glut实现
- 泛滥填充种子填充算法OpenGl glut实现
- glfw-3.2.1 OpenGL用
- OpenGL三维图形系统开发与实用技术 基
- vs配置opengl所需glut库
- OpenGl 飞机在蓝天飞行 纹理贴图 地形
- 3D世界的QT+opengl实现
- 中点画圆的算法
- opengl20面体
- opengl纹理贴图
- GLTools-Freeglut.zipopengl超级宝典V5
- VIEW3DS.exe
- freeimage库的一个小
- OpenGL动态小车
- vc OpenGL制作动态三维的雷达扫描效果
- error C1083: 无法打开包括文件: “glau
- OpenGLWindow.zip
- GLUT库下载69016
- OpenGL实现下雪的效果
- openGL兔子模型
- GLaux (OpenGL辅助库)
- qt_opengl_obj.zip
- glaux库包含glaux.h和glaux.lib
- opengl通过键盘对3d图像进行颜色,光照
- GLM动态库、静态库和头文件OpenGL
- opengl函数大全,所有可用函数都在这
- QT-opengl窗体,实现了 1.绘制立方体,
- 计算机图形学机器人绘制opengl
- 使用opengl画桌子+球+地板
评论
共有 条评论