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

西宁哪家网络公司做网站好优秀网站建设报价

西宁哪家网络公司做网站好,优秀网站建设报价,阿里云1m宽带做网站卡吗,哪些网站可以做ppiOpenGL 是一个强大的跨平台图形 API,用于渲染 2D 和 3D 图形。以下是 OpenGL 3D 编程的入门基础。 一. 环境设置 安装必要的库 GLFW: 用于创建窗口和处理输入 GLEW 或 GLAD: 用于加载 OpenGL 函数 GLM: 数学库,用于 3D 变换 // 基本 OpenGL 程序结构示例 #include <GL/g…

OpenGL 是一个强大的跨平台图形 API,用于渲染 2D 和 3D 图形。以下是 OpenGL 3D 编程的入门基础。

一. 环境设置

安装必要的库

  • GLFW: 用于创建窗口和处理输入

  • GLEW 或 GLAD: 用于加载 OpenGL 函数

  • GLM: 数学库,用于 3D 变换

// 基本 OpenGL 程序结构示例
#include <GL/glew.h>
#include <GLFW/glfw3.h>int main() {// 初始化 GLFWif (!glfwInit()) return -1;// 创建窗口GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGL 3D", NULL, NULL);if (!window) {glfwTerminate();return -1;}// 设置当前上下文glfwMakeContextCurrent(window);// 初始化 GLEWif (glewInit() != GLEW_OK) return -1;// 主循环while (!glfwWindowShouldClose(window)) {// 清屏glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// 渲染代码// 交换缓冲区glfwSwapBuffers(window);// 处理事件glfwPollEvents();}glfwTerminate();return 0;
}

二. 3D 基础概念

坐标系

  • OpenGL 使用右手坐标系

  • X轴向右,Y轴向上,Z轴向外(朝向观察者)

变换矩阵

  • 模型矩阵(Model): 物体从局部空间到世界空间的变换

  • 视图矩阵(View): 世界空间到相机空间的变换

  • 投影矩阵(Projection): 从相机空间到裁剪空间的变换

// 使用 GLM 创建变换矩阵示例
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>glm::mat4 model = glm::mat4(1.0f); // 单位矩阵
model = glm::rotate(model, glm::radians(45.0f), glm::vec3(0.0f, 1.0f, 0.0f)); // 绕Y轴旋转45度
model = glm::translate(model, glm::vec3(1.0f, 0.0f, 0.0f)); // 沿X轴平移glm::mat4 view = glm::lookAt(glm::vec3(0.0f, 0.0f, 3.0f), // 相机位置glm::vec3(0.0f, 0.0f, 0.0f),  // 观察目标glm::vec3(0.0f, 1.0f, 0.0f)   // 上向量
);glm::mat4 projection = glm::perspective(glm::radians(45.0f), // 视野角度800.0f / 600.0f,     // 宽高比0.1f, 100.0f         // 近平面和远平面
);

三. 渲染3D物体

顶点数据

// 立方体顶点数据示例
float vertices[] = {// 位置             // 颜色-0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f,0.5f, -0.5f, -0.5f, 0.0f, 1.0f, 0.0f,// ... 其他顶点
};

顶点缓冲对象(VBO)和顶点数组对象(VAO)

unsigned int VBO, VAO;
glGenVertexArrays(1, &VAO);
glGenBuffers(1, &VBO);glBindVertexArray(VAO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);// 位置属性
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), (void*)0);
glEnableVertexAttribArray(0);// 颜色属性
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), (void*)(3 * sizeof(float)));
glEnableVertexAttribArray(1);

着色器程序

顶点着色器示例:

glsl

#version 330 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec3 aColor;uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;out vec3 ourColor;void main() {gl_Position = projection * view * model * vec4(aPos, 1.0);ourColor = aColor;
}

片段着色器示例:

glsl

#version 330 core
in vec3 ourColor;
out vec4 FragColor;void main() {FragColor = vec4(ourColor, 1.0);
}
http://www.dtcms.com/wzjs/785409.html

相关文章:

  • 网站备案与域名备案宝塔面板 wordpress
  • 网站怎么做微信支付宝支付网站开发有哪些常用工具
  • 大同网站建设银川网站建设
  • 网站如何进行网络推广行业网站需要如何做
  • 广东建设工程信息网站wordpress加黑字体
  • 做网站不备案江苏专业网站建设公司电话
  • 小学生信息科学做网站青岛网站建设莫道网络
  • dw做的网站怎么发布山西seo推广系统
  • 手机网站设计立找亿企邦discuz 做论坛与网站
  • 门户网站建设开发制作网站的花多少钱
  • 国外免费网站服务器开发网站现实网络传输失败
  • 外贸网络营销如何做南宁网站排名优化电话
  • 来年做啥网站能致富wordpress取分类名称
  • 淄博网站定制万网域名查询ip
  • 买机票便宜网站建设线上宣传有哪些好的方式方法
  • 网站建设及优化的策划书深圳市凡客创品科技有限公司
  • 南山区公司网站制作网站建设方案风险分析
  • 学用mvc做网站建设手机网站多少钱
  • 手机端网站尺寸规范网站开发需要什么软件
  • 下列关于网站制作的邢台交友
  • 各种网站程序的优势容桂网站建设原创
  • 魔客吧是什麼程序做的网站品牌网站建设方
  • 网站制作的收费标准wordpress购买服务器
  • 动画型网站wordpress 伪静态500
  • 礼品网站建设公司郑州工装定制厂家哪家好
  • 贵阳营销网站建设公司工业产品设计与创客实践项目
  • 北京网站建设解决方案wordpress 分类目录代码
  • 运营推广网站建设网络和网站的区别
  • 雷州手机网站建设做外贸的网站要多少钱
  • 网站维护主要从哪几个方面做wordpress 移动端菜单