图形渲染与图像处理
文章平均质量分 73
zenny_chen
GitHub: https://github.com/zenny-chen/
Gitee: https://gitee.com/zenny-chen/
【CPU Dasher X】https://itunes.apple.com/cn/app/cpu-dasherx/id1168527539?l=en&mt=8
《OpenCL异构并行》:https://item.jd.com/11818715.html
《C语言编程魔法书》:https://item.jd.com/12737899067.html
展开
-
macOS中如何使用OpenGL 3.2 Core Profile
从macOS Lion(10.7)开始,Apple支持了对OpenGL 3.2 Core Profile的支持。不过Core Profile与Compatible相比有比较大幅度的改变。从主机端的API到OpenGL接口,再到GLSL(OpenGL Shading Language),这些方面都有些变化。原创 2023-06-18 17:29:50 · 1766 阅读 · 0 评论 -
macOS下使用OpenGL做离屏渲染
有时,我们想通过GPU做一些视频、图像处理,而处理的结果不需要显示在显示器上,而是直接交给主存,这时候我们可以通过OpenGL的离屏渲染(Offscreen Rendering)来实现。原创 2023-05-10 00:54:10 · 980 阅读 · 0 评论 -
解释水波特效处理
在计算机图形中的许多特效中,水特效是一种完全抓取观众注意的效果。它模拟了水在被外界干扰时的行为。这篇文章由两部分组成。第一部分介绍了水的行为如何被模拟。第二部分描述了当光照射到透明的表面时,你可以如何计算光的折射。它们一起为你提供了对一个抓取视线模拟程序的知识。原创 2023-05-10 00:22:45 · 743 阅读 · 0 评论 -
macOS的CAOpenGLLayer中如何启用OpenGL3.2 core profile
在macOS的openGL编程中,我们有时为了想在自己的OpenGL图层上再加些自己的某些图层,必须得用 CAOpenGLLayer 而不是 NSOpenGLView,由于在 NSOpenGLView 上添加任何子视图都会变得无效。原创 2023-05-09 00:21:17 · 1933 阅读 · 0 评论 -
OpenGL 4.0的Tessellation Shader(细分曲面着色器)
它是由ATI在2001年率先设计出来的。原创 2023-05-08 22:47:37 · 2629 阅读 · 0 评论 -
OpenGL ES3使用MSAA(多重采样抗锯齿)的方法
昨晚花费了我2个多小时的时间终于把OpenGL ES3.0中的MSAA给搞定了。原创 2023-05-08 20:48:01 · 1610 阅读 · 0 评论 -
Raspberry Pi(树莓派)基于Raspbian操作系统开发OpenGL ES应用
笔者在树莓派上开发OpenGL ES之前,特地从网上做了些功课。当前,无论是Raspberry Pi 3还是Zero,倘若要开启博通的Video Core GPU硬件加速,那么只能使用官方提供的 Raspbian OS系统,并且需要使用存放在 /opt/vc/ 下的私有库。因此,我们只能通过EGL结合树莓派特定的DispManX运行时环境来使用OpenGL ES。原创 2023-04-27 18:28:28 · 1457 阅读 · 0 评论 -
Ubuntu下使用GLUT与GDK将图片文件加载到纹理单元
在Linux系统中有不少开源好用的工具库用来读取图片文件,识别其格式,然后以RGB等原生像素格式存储到存储器中。比如libpng就是其中之一。不过我们这里使用更方便好用、更通用的GTK+库中所包含的GDK工具库对指定的图片文件进行读取,然后读取其内部原生像素数据,最后映射到纹理单元上。原创 2023-04-27 18:22:46 · 180 阅读 · 0 评论 -
Ubuntu下GTK与GLUT的共同使用
今天不知神马原因,一下子突发奇想,试想了一下GTK与GLUT是否可以相互协作,经过初步测试,这还算是可行的。在以下demo中,我们可以点击由GTK创建的按钮然后弹出用GLUT创建的窗口。由于GTK与GLUT是两个完全独立的库,两者均含有各自的消息循环(也就是通常所说的runloop),因此当我们点击按钮弹出GLUT窗口的时候,其实相应的都是GLUT的消息循环,GTK此时处于冻结状态。只有当我们将GLUT窗口关闭之后,GTK窗口才会被再次激活,侦听消息。原创 2023-04-27 18:20:12 · 114 阅读 · 0 评论 -
Ubuntu下使用GLUT编写OpenGL程序
在Linux下以及Windows操作系统下编写OpenGL程序已经变得非常便捷了,我们只需安装freeglut工具包即可。老旧的GLUT已经废弃了,现在如果我们要在一些类Unix系统上编写OpenGL程序的话需要安装FreeGLUT。原创 2023-04-27 18:17:12 · 974 阅读 · 0 评论 -
如何使用OpenGL来绘制一个圆角矩形
iOS系统的流行带来了一阵圆角矩形的热风。许多设计狮与产品汪都对圆角矩形比较感冒,那作为程序猿该如何应付呢?幸好,当前无论是iOS还是Android系统,系统框架库都带了一些API能让我们比较便利地实现圆角矩形的功能。这里,笔者将利用OpenGL更底层的图形API来实现“磨圆”一个矩形的四个角,使得我们对圆角矩形有一个更理性的认识。原创 2023-04-24 00:49:56 · 1654 阅读 · 0 评论 -
OpenGL与Metal API的Point Sprite
我们在实际用OpenGL等3D图形渲染API时点图元往往用得不多,而在粒子系统中可能也是用一个正方形来绘制一单个粒子。不过在当前大部分3D图形渲染API中都能支持用点图元来绘制一个具有纹理贴图的粒子原创 2023-04-24 00:39:15 · 884 阅读 · 0 评论 -
探究GPU同时做渲染与通用计算的并行性
在10年前,随着CUDA与OpenCL的纷纷出炉,GPGPU也着实热了一把。而现今,不少公司更是将GPGPU作为挖矿、搞机器学习的计算利器。于是乎,有许多言论声称GPU将很快取代CPU!那么现代化的GPGPU是否具有如此强大的威力甚至于能取代CPU呢?本文将会以GPGPU的任务级并行能力来看看这些尖端GPU的性能。原创 2023-04-24 00:19:25 · 1130 阅读 · 0 评论 -
Vulkan开启特征(feature)的正确姿势
当我们在用Vulkan写一些应用时,无论是用其图形流水线还是计算流水线,或多或少需要用到一些当前设备的Vulkan核心版本所不具备的扩展特征,那么我们如何能既安全又方便地开启一些我们需要的特征呢?本文将给各位进行介绍。原创 2023-04-23 17:23:26 · 1275 阅读 · 0 评论 -
Vulkan Programming Guide第11章——同步
Vulkan被设计为在一个设备上含有多个队列中进行异步、并行地运行作业,并且与主机一起协同,以保持物理资源始终在使用状态且繁忙。在你应用程序中各种不同的点处(时间与代码位置),你需要保持主机与设备各种不同部分的同步状态。在本章,我们将为此目的会讨论对Vulkan应用程序可用的几种同步原语。原创 2023-04-23 17:20:44 · 680 阅读 · 0 评论 -
SPIR-V初窥
SPIR-V着色器被嵌入在模块之中。每个模块可以包含一个或多个着色器。每个着色器具有一个入口点,该入口点具有一个名字和一个着色器类型,着色器类型用于定义当前着色器跑在哪个着色阶段。入口点则是当前着色器开始执行的位置。一个SPIR-V模块伴随着创建信息被传递给Vulkan,然后Vulkan返回表示该模块的一个对象。该模块对象随后可以用于构造一条流水线。原创 2022-06-29 14:17:09 · 3833 阅读 · 0 评论 -
3D图形渲染及数字图像处理算法相关文集
彩阳的CSDN博客侯思松博客mg博客handyTOOL的简书OpenGL ES文集梁老师的博客园Morgan McGuire图形学:名词解释完美的视图旋转算法OpenGL缓冲区对象之UBO使用计算着色器(Compute Shader)模拟粒子效果【OpenGL】Image Load StoreOpengl入门系列- FBO的渲染到纹理的用法非常详细易懂的法线贴图(Normal Mapping)凹凸映射(Bump Map)实现原理OpenGL调试技巧汇总Performance .原创 2021-07-02 10:09:29 · 3021 阅读 · 0 评论 -
基本光照代码
以下代码是基于Mac OS X Snow Leopard的对于光照的基本使用的代码:原创 2010-06-24 22:22:00 · 2035 阅读 · 0 评论 -
通过OpenGL加载图像
通过OpenGL加载图像原创 2010-05-11 22:11:00 · 2069 阅读 · 0 评论 -
优化的立方体绘制
为了充分发挥GPU的性能。我们在绘制图形时应当尽量采用数组,以最少的次数调用glDrawArray或glDrawElements,并且最好以Triangle Strip或Triangle Fan的形式绘制。因为这个即能避免顶点的重复定义也能使得顶点数据被放入GPU的常量缓存中去。原创 2010-06-14 17:52:00 · 1798 阅读 · 2 评论 -
利用OpenGL固定功能流水线绘制球体
绘制半个球体原创 2010-09-24 14:28:00 · 2353 阅读 · 0 评论 -
深入了解OpenGL——OpenGL的演化
深入了解OpenGL——OpenGL的演化原创 2010-09-24 20:29:00 · 1693 阅读 · 0 评论 -
深入了解OpenGL——帧缓存
深入了解OpenGL——帧缓存原创 2010-09-24 22:59:00 · 10372 阅读 · 0 评论 -
Apple's OpenGL
Apple's OpenGL原创 2010-10-04 20:17:00 · 3324 阅读 · 0 评论 -
利用OpenCL生成球体顶点
<br />利用OpenCL生成球体顶点<br />原创 2010-10-21 05:54:00 · 1935 阅读 · 1 评论 -
基于OpenGL ES的GLfixed类型使用
OpenGL ES中引入了GLfixed类型。这个类型一般被定义为int,32位。高16位表示整数部分,低16位表示小数部分。由于其整数部分和小数部分所占用的比特数固定,所以也被称为定点类型——fixed type。这个类型的小数部分一般占用低16位,而由于最高位被用作符号为,所以整数部分其实为15位。原创 2010-12-13 22:51:00 · 5461 阅读 · 0 评论 -
通过Quartz+Core Image读取JPEG图像的二进制位图以及将二进制位图做成图像
通过Quartz+Core Image读取JPEG图像的二进制位图原创 2011-02-19 22:54:00 · 1923 阅读 · 0 评论 -
通过Quartz绘制位图
通过Quartz绘制位图原创 2010-12-19 22:05:00 · 823 阅读 · 0 评论 -
Metal API随着iOS 10与macOS 10.12新引入的Tessellation特性
Tessellation——中文一般译作“细分曲面”,一般用于将由少量顶点构成的面生成细节度更高的面。这其中的原理是将一个三角形或四边形,由GPU根据我们编程的控制点生成规则,自动生成更多的顶点,然后将这些顶点根据一定规则生成更多的三角形。这么一来,我们可以在3D游戏中在远处的敌人使用低模也能做出精细度较高的模型出来了,而且也省顶点数据传输带宽。原创 2016-09-23 22:24:20 · 5681 阅读 · 2 评论 -
深入了解OpenGL
深入了解OpenGL——序 深入了解OpenGL——绘制基本图元 深入了解OpenGL——顶点线性变换 深入了解OpenGL——光照 深入了解OpenGL——颜色混合 深入了解OpenGL——抗犬齿 深入了解OpenGL——模板测试 深入了解OpenGL——纹理基础原创 2010-04-26 02:59:00 · 14520 阅读 · 0 评论