当前位置: 首页 > news >正文

开个做网站的公司 知乎开发公司和建筑公司同一法人

开个做网站的公司 知乎,开发公司和建筑公司同一法人,wordpress 插件管理,阳江网站建设文章目录 1、简介1.1 OpenGL简介1.2 glut简介1.3 freeglut 2、glut安装2.1 命令安装glut2.2 源码安装glut 3、glut测试3.1 测试1,版本打印3.2 测试2,绘制三角形3.3 测试3,VBO绘制三角形 结语 1、简介 1.1 OpenGL简介 OpenGL作为图形界的工业…

文章目录

  • 1、简介
    • 1.1 OpenGL简介
    • 1.2 glut简介
    • 1.3 freeglut
  • 2、glut安装
    • 2.1 命令安装glut
    • 2.2 源码安装glut
  • 3、glut测试
    • 3.1 测试1,版本打印
    • 3.2 测试2,绘制三角形
    • 3.3 测试3,VBO绘制三角形
  • 结语

1、简介

1.1 OpenGL简介

OpenGL作为图形界的工业标准,其仅仅定义了一组2D和3D图形接口API,而对于窗口管理、IO消息响应等并没有规定。也就是说,OpenGL依赖各平台提供用于渲染的context以及具体实现方式,而各平台提供的实现不尽相同。这些实现主要有:Windows平台下的WGL、Linux下的Mesa/GLX、Mac OS X下的Cocoa/NSGL,以及跨平台的GLUT、GLFW、SDL等等。
在这里插入图片描述

安装OpenGL库:

# sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev

在这里插入图片描述

使用如下的命令来查看对应显卡的OpenGL版本:

glxinfo | grep -i opengl

在这里插入图片描述

1.2 glut简介

https://www.opengl.org/resources/libraries/glut/glut_downloads.php

http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

https://www.opengl.org/resources/libraries/glut/glut-3.spec.pdf

OpenGL工具库 OpenGL Utility Toolkit,包含大约30多个函数,函数名前缀为glut。

glut是不依赖于窗口平台的OpenGL工具包,由Mark KLilgrad在SGI编写(现在在Nvidia),目的是隐藏不同窗口平台API的复杂度。 函数以glut开头,它们作为aux库功能更强的替代品,提供更为复杂的绘制功能,此函数由glut.dll来负责解释执行。由于glut中的窗口管理函数是不依赖于运行环境的,因此OpenGL中的工具库可以在X-Window, Windows NT, OS/2等系统下运行,特别适合于开发不需要复杂界面的OpenGL示例程序。对于有经验的程序员来说,一般先用glut理顺3D图形代码,然后再集成为完整的应用程序。
在这里插入图片描述

1.3 freeglut

https://freeglut.sourceforge.net/
https://github.com/freeglut/freeglut/releases
freeglut最初由帕维尔·W. Olszta与安德烈亚斯·乌姆巴赫和史蒂夫·贝克的贡献。史蒂夫是现在官方的拥有者/维护者。帕维尔在1999年12月1日开始freeglut的开发。目前,该项目几乎可以100%的替代原来的GLUT,只有少数差别(如the abandonment of SGI-specific features,按钮盒子和动态视频分辨率)和 其他一小部分程序Bug。

这个库是原始的GLUT库修改之后得到的,它既提供32位、也提供64位的编译环境。
在这里插入图片描述
在这里插入图片描述

2、glut安装

2.1 命令安装glut

# sudo apt-get install build-essential freeglut3 freeglut3-dev
# sudo apt-get install libglut-dev or 
sudo apt-get install freeglut3-dev

在这里插入图片描述

locate freeglut

在这里插入图片描述

sudo apt-get remove freeglut3
# or
sudo apt-get -y autoremove freeglut3
# or
sudo apt-get -y purge freeglut3
# or
sudo apt-get -y autoremove --purge freeglut3

在这里插入图片描述
在卸载freeglut库之后,编译测试项目如下:
在这里插入图片描述

2.2 源码安装glut

  • (1)glut
    如果安装 GLUT,地址在:https://user.xmission.com/~nate/glut.html,下载 glut-3.7.6-bin.zip(已经十几年没更新过了所以就是这个版本了)
    https://user.xmission.com/~nate/glut/glut-3.7.6-bin.zip
  • (2)freeglut
    freeglut 在地址:https://github.com/freeglut/freeglut/releases/download/v3.6.0/freeglut-3.6.0.tar.gz

3、glut测试

3.1 测试1,版本打印

  • CMakeLists.txt
cmake_minimum_required(VERSION 2.8.1)project(my_project)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)# seach
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)# include
include_directories(${OPENGL_INCLUDE_DIRS})
include_directories(${GLUT_INCLUDE_DIRS})add_executable(${PROJECT_NAME} main.cpp)target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES})
  • main.cpp

#include <iostream>
#include <GL/freeglut.h>int main(int argc, char** argv)
{std::cout << "hello, yxy" << std::endl;glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);glutInitWindowSize(300, 300);glutInitWindowPosition(100, 100);glutCreateWindow("OpenGL Version");const GLubyte* szVendor = glGetString(GL_VENDOR);const GLubyte* szRender = glGetString(GL_RENDERER);const GLubyte* szGLVersion = glGetString(GL_VERSION);const GLubyte* szGluVersion = gluGetString(GLU_VERSION);printf("OpenGL实现厂商的名字:%s\n", szVendor);printf("OpenGL渲染器标识符:%s\n", szRender);printf("OpenGL实现的版本号:%s\n", szGLVersion);printf("GLU工具库版本:%s\n", szGluVersion);return 0;
}

编译如下:
在这里插入图片描述
或者直接使用gcc编译

gcc -o test main.c -lGL -lGLU -lglut
# or
apt-get install libglew-dev
g++ -o test main.cpp -lGL -lGLU -lglut -lGLEW

3.2 测试2,绘制三角形

  • main.cpp
#include <GL/freeglut.h>void renderScene(void)
{glClearColor(1.0, 1.0, 0.6, 1.0);glClear(GL_COLOR_BUFFER_BIT);glLoadIdentity();glBegin(GL_TRIANGLES);glColor3f(1, 0, 0);glVertex3f(-0.5, -0.5, 0.0);glColor3f(0, 1, 0);glVertex3f(0.5, 0.0, 0.0);glColor3f(0, 0, 1);glVertex3f(0.0, 0.5, 0.0);glEnd();glutSwapBuffers();
}int main(int argc, char** argv)
{glutInit(&argc, (char**)argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);glutInitWindowPosition(100, 100);glutInitWindowSize(800, 480);glutCreateWindow("yxy glut: draw triangle");glutDisplayFunc(renderScene);glutMainLoop();return 0;
}

测新项目运行如下:
在这里插入图片描述

3.3 测试3,VBO绘制三角形

  • CMakeLists.txt
cmake_minimum_required(VERSION 2.8.1)project(my_project)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)# seach
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
find_package(GLEW REQUIRED)# include
include_directories(${OPENGL_INCLUDE_DIRS})
include_directories(${GLUT_INCLUDE_DIRS})add_executable(${PROJECT_NAME} main.cpp)target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} GLEW::GLEW)
  • main.cpp
#include <stdio.h>
#include <GL/glew.h>
#include <GL/freeglut.h>GLuint VBO;static void RenderSceneCB()
{glClear(GL_COLOR_BUFFER_BIT);glEnableVertexAttribArray(0);glBindBuffer(GL_ARRAY_BUFFER, VBO);glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);glDrawArrays(GL_TRIANGLES, 0, 3);glDisableVertexAttribArray(0);glutSwapBuffers();
}static void InitializeGlutCallbacks()
{glutDisplayFunc(RenderSceneCB);
}static void CreateVertexBuffer()
{const GLfloat Vertices[] = {-1.0f, -1.0f, 0.0f,1.0f, -1.0f, 0.0f,0.0f, 1.0f, 0.0f};glGenBuffers(1, &VBO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(Vertices), Vertices, GL_STATIC_DRAW);
}int main(int argc, char** argv)
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);glutInitWindowSize(800, 600);glutInitWindowPosition(0, 0);glutCreateWindow("yxy glut: VBO + triangle ");InitializeGlutCallbacks();// Must be done after glut is initialized!GLenum res = glewInit();if (res != GLEW_OK) {fprintf(stderr, "Error: '%s'\n", glewGetErrorString(res));return 1;}glClearColor(0.6f, 0.6f, 0.6f, 1.0f);CreateVertexBuffer();glutMainLoop();return 0;
}

测新项目运行如下:
在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

http://www.yayakq.cn/news/667229/

相关文章:

  • 做一手房有哪些网站比较好啊免费游戏大全
  • 机票旅游网站开发多语言站点 wordpress
  • 做网站运营怎么样海外营销推广 平台
  • 网站原型设计网页浏览器翻译
  • 佛山网站建设优势html5 网站 代码
  • 网站备案通管局本周国内重大新闻十条
  • 个人网站备案涉及支付宝郴州网红景点排名
  • 哪里有做杂志的免费模板下载网站全案品牌策划公司
  • 网站备案到期了怎么办.net网站开发源码
  • 网站推广策划的策略网站备案有时间吗
  • 做seo网站优化价格招代理的网站要怎么做的
  • 建筑人才网官方网站评职称制作视频的免费软件
  • 网站设计用什么字体好商标设计logo图案软件免费
  • 做试题的网站阿里云虚拟主机网站吗
  • 网站制作html代码网站开发工具总结
  • net后缀做公司网站05网课时作业本答案
  • 忻州网站建设公司专门做简历的网站有哪些
  • 国内最好的软件网站建设wordpress显示选项解决方法
  • wordpress导航菜单位置网络优化工程师证书
  • 成都58手机微信网站建设名录卖鱼的亲戚要我帮忙做网站
  • 企业网站 html模板下载网站建设与管理模拟题1
  • 站长工具无忧广告设计专业专升本考什么
  • 广州移动 网站设计在手机上做网站是什么软件
  • 营销型网站是什么意思商务网站建设的可行性分析包括
  • 中国保险行业协会网站在工商网上怎么注册公司
  • 安徽合肥制作网站公司吗网站设计培训成都哪家好
  • 提供网站建设教学视频建设厅网站总经济师是干什么的
  • 网站开发是叫系统吗专门做孕婴用品的网站
  • 网站做半透明度的优势网站网站建设公司上海
  • 建设领域信用系统网站厦门网站建设报价