c语言有哪些图形库(非c++)?
c语言有哪些图形库(非c++)?[*]win32 平台,可以直接用win32 api 写c程序。里面有gdi 图形库接口。
[*]linux 平台,有gtk 图形库,SDL图形库。
[*]dos 16位平台,有turboc 的graphics.h 等
[*]dos 32位平台,有 allegro 图形库。
[*]mac 平台,有 opengl,SDL等图形库。
可能 SDL 最接近这个需求,有 linux,windows,mac,Android ,iOS 的移植版本。
还有就是 opengl 了,这个也是跨平台的,有c语言接口。
<a data-draft-node="block" data-draft-type="mcn-link-card" data-mcn-id="1467272978803548160"> 计算机图形栈还是一个诸候争霸的领域。远远没有大一统。
万物归结于VGA(DAC)、HDMI(SerDes)和DisplayPort(SerDes)。称之为Display Controller。
万物归结于DirectX12Ultimate,vulkan,Metal。称之为Render。
万物归结于H.264和H.265。用verilog实现,称之为video encode and decode engine。
万物归结于运算单元堆。称之为GPGPU、Compute Shader、OpenCL。
万物归结于运算单元堆,模拟物理规则,称之为PhysX、havok、BulletPhysic。
万物归结于intersection。称之为RayTrace Core。
万物归结于Tensorflow。称之为Tensor Core。
处理器连接总线,总线连接显卡,显卡中一切Render、video、运算单元堆、RayTrace core、Tensor core生成的最终画面写入framebuffer,framebuffer连接Display Controller,再连接显示器。
二维和三维的差别,只剩下需要还是不需要乘以projection matrix。
千变万变,曲面细分,光栅化,纹理不变。framebuffer万年。
<hr/>回到正题
Microsof Windows上C语言的控件库是:COMCTL32.DLL和COMDLG32.DLL。 很久很久以前, 久以前, 久以前.
只有一个graphics.h可用 PainterEngine是一个由C语言编写的完整开源的跨平台图形应用框架,可移植到Windows Linux Android iOS 支持WebAssembly的Web端及嵌入式MCU上
[*]PainterEngine由C89标准及部分拓展编写,不依赖任何C标准库及三方库。
[*]PainterEngine是平台、编译环境、运行时无关的。
[*]包含一套完整的内存管理及常用数据结构算法的实现。
[*]包含一套完整软2D/3D渲染器实现。
[*]包含一套完整编译型脚本引擎实现(编译器、虚拟机、调试器)。
[*]包含一套完整游戏世界框架(对象及资源管理器,事件调度器,碰撞优化及物理计算模板)。
[*]包含一套完整的Live2D动画系统实现(骨骼及物理模拟、动作追踪、独立的图元光栅化实现,配套建模编辑器)
[*]包含一套完整的设计器系统实现(游戏布局设计器,UI设计器)
[*]常用的反走样几何绘制及光栅化算法。
[*]图像信号及音频信号处理算法(常用滤波器、声码编码器、ZCR、MFCC等特征采集算法)。
[*]基础的BP神经网络框架实现。
[*]UI框架、粒子系统、调音器、混音器、逐帧动画、网络同步协议、MODBUS,MQTT等iot协议栈、json/obj/wav Parser..的完整实现。
[*]更多内容及使用说明,请参阅
PainterEngine 一个由C语言编写的完整开源的跨平台图形应用框架下面的程序全是PainterEngine写的
3D bunny
使用PainterEngine 3D管线渲染的一个带有简单光照的斯坦福兔子。
<hr/>
星际老司机
使用PainterEngine 开发的多人在线对战网游。
用于演示PainterEngine游戏世界框架及帧同步协议的DEMO小游戏
包含一个游戏实例服务端/客户端,游戏大厅服务端/客户端
<hr/>
PainterEngine Live动画
使用PainterEngine Live开发的演示动画。
PainterEngine Live是PainterEngine中内建的类似于Live2D的动画框架,包含骨骼及物理模拟的纸娃娃动画系统
<hr/>
狐狸跳跳跳
使用PainterEngine游戏世界框架开发的小游戏。
可以在windows linux android iOS web及MCU系统中无成本完成移植
<hr/>
基于PainterEngineShader实现的2D图形光照
使用PainterEngine shader完成的一个2D图形光照系统的DEMO。
<hr/>
Pacman吃豆人
使用PainterEngine游戏世界框架制作的一个示范性Demo。
<hr/>
HackGame
使用PainterEngine制作的一个Hack Game。
<hr/>
2DX动画
PainterEngine 2dx演示动画及代码。
2dx是PainterEngine中的逐帧动画格式,是PainterEngine最简便的动画形式之一
<hr/>
扫雷
使用PainterEngine UI控件PushButton编写的扫雷小游戏
<hr/>
音乐播放器
使用PainterEngine开发的演示音乐播放器。
支持Wav 16bit 44100HZ的音乐播放,带频谱显示
<hr/>
粒子系统
使用PainterEngine粒子系统编写的示范程序。
<hr/>
贪吃蛇
使用PainterEngine gdi编写的贪吃蛇程序。
<hr/>
PainterScript多线程
PainterScript的多线程示范程序
<hr/>
HSL插画动画
使用PainterEngine设计器制作的HSL插画动画。
这仅仅是某天画完插画后无聊做的一个小玩意
<hr/>
BMI计算器
使用PainterEngine设计器制作的一个简易BMI计算器。
<hr/>
卡尔曼滤波
使用PainterEngine KalmanFilter开发的温度预测实例
<hr/>
PainterEngine Console
PainterEngine Console是一个基于PainterScript脚本引擎的实现的的控制台程序。
其功能类似于bash/powershell,提供了一个平台无关的控制台实现
用于程序调试,文本及图像输出,单元测试及Log查看
<hr/>
SoundLab
使用PainterEngine声学库开发的声学分析及建模程序
包含频域、倒谱区分析,基于MFCC的特征提取,基音估算及基于神经网络构建的基音分类
基于PainterEngine调音台的时域延拓(相位声码器方法)变调及权值滤波器
可作为声学变音模型的构建工具 GTK
GNOME 用的就是这个
页:
[1]