资源简介
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参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
- opengl室内场景的绘制,包括碰撞检测
评论
共有 条评论