資源簡介
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
評論
共有 條評論