关于 Learnopengl 中用 Geometry Shader 实现机器人爆炸【Opengl – 图形学 – C/C++ 系列】【寅虎】

前言

上一回合《Opengl – 图形学 – C/C++ 每天进步一点点【丑牛】》讲到了画三角形、四边形,但 3D 的世界肯定更加精彩,这里我来聊聊在 web 世界的 Webgl / Webgpu 中没有玩过的东西 – Geometry Shader,废话不多说,让各种 aigc 科普下。

一言说:Geometry Shader 是一种可选的着色器,它开始被引入在 Driect3D 10 和 OpenGL 3.2 中,然后在 OpenGL 2.0+ 中被作为扩展使用,在 OpenGL3.x 中它也成为了核心。Geometry Shader 主要的输入是点、线和三角形,输出是点、线带和三角形带。Geometry Shader 的处理阶段处于流水线的栅格化之前,也在视锥体裁剪和裁剪空间坐标归一化之前。另外,Geometry Shader 程序是在 Vertex Shader 程序执行完之后才执行的 继续阅读“关于 Learnopengl 中用 Geometry Shader 实现机器人爆炸【Opengl – 图形学 – C/C++ 系列】【寅虎】”

Opengl – 图形学 – C/C++ 每天进步一点点【丑牛】

前言

上一回合讲到 C/C++ 开发环境的搭建,基础搞好了,这里终于可以进入正题了,废话不多话,先找 gpt 帮忙开个头,it goes like this:)
PROMPT:介绍一下GLFW和GLAD
ANSWER:GLFW和GLAD是两个常用的库,用于在现代OpenGL应用程序中进行窗口管理和加载OpenGL函数。
1、 GLFW(OpenGL Framework)是一个轻量级的开源库,用于创建和管理窗口、处理用户输入(如键盘、鼠标、游戏手柄等),以及获取时间间隔。它提供了一个简单的接口,方便开发者快速搭建OpenGL应用程序的窗口环境。GLFW跨平台,可以在Windows、MacOS和Linux等操作系统上使用。
2、 GLAD(OpenGL Loading Library)是一个开源的库,用于加载OpenGL函数。在早期版本的OpenGL中,需要手动查找和加载函数指针才能使用OpenGL的功能。而GLAD简化了这个过程,它自动生成了跨平台的OpenGL加载器代码,可以自动获取系统支持的OpenGL版本和扩展,并将相关函数指针加载到程序中,方便开发者使用OpenGL的各种功能。
glfw和glad常常被一起使用。开发者可以使用GLFW创建窗口、处理用户输入,然后使用GLAD加载特定OpenGL版本的函数,并在GLFW创建的窗口环境中使用这些函数实现图形渲染以及其他OpenGL相关的操作。这样,开发者能够更方便地进行现代OpenGL应用程序的开发 继续阅读“Opengl – 图形学 – C/C++ 每天进步一点点【丑牛】”

Opengl – 图形学 – C/C++ 每天进步一点点【子鼠】

前言

废话不多话,先找 gpt 帮忙开个头,it goes like this:)
在过去的四、五年里,学习 Web3D 一直是我不断探索和学习的一个领域。从一开始学习的时候,我就深深地迷上了这种技术所带来的无限可能性和创新性。在这个过程中,我不断地在探索和学习,不断地克服着困难和挑战。今天,回顾这些年来的收获和经验,我深深感谢自己的坚持和努力,也深深感谢这个领域里的各位前辈和同行,他们的经验和技术为我的学习之路提供了巨大的支持和帮助。然而,最近我开始关注更加深入和高级的图形编程技术,因此我决定开始学习 C / C++ 和 OpenGL,并将 Web3D 技术与之相结合。这不仅可以使我更好地理解和掌握计算机图形学的基本原理,也可以让我更好地实现自己的项目和构建更加高效和复杂的3D场景。在这篇文章中,我将不定期分享我从 Web3D 技术转向 C++ 和 OpenGL 图形编程的经历和心得,包括遇到的挑战和克服困难的过程,并希望以此鼓励更多的人不断探索、学习和学以致用 继续阅读“Opengl – 图形学 – C/C++ 每天进步一点点【子鼠】”

A Simple Introduction to Ray Algorithms

Ray

What is Ray? Ray is known as casting a ray line from a point (Ray Origin) in space to a point or to a certain direction (Ray Direction) in space. Literally, a ray is a line segment that starts at a point and extends in a direction. We can use two values to define a ray: the origin and the direction. What ever dimension space the ray is in, we can use the origin and direction to define a ray. Ok, so how to define a ray origin and direction? Commonly, we can use vectors to define the origin and direction. When it comes to vectors, Wow! 继续阅读“A Simple Introduction to Ray Algorithms”

Something About Computer Graphics

忽然就想用英语来写写技术系列之二 – 浅谈计算机图形学。接着上一篇我之前写的《Web 图形学从入门到 “放弃” 指南》的文章,我再来畅谈一下计算机图形学的皮毛。

In last few years, I have been learning computer graphics from 2d Canvas, 2D Svg, Webgl, Three.js, Webgpu and Glsl
shader programs.

As the saying goes, “There are three romantic areas in programming: 1. Operating System 2. Compiler 3. Computer
Graphics”. 继续阅读“Something About Computer Graphics”