opengl 点精灵的使用
1、导入glext动态链接库中的函数
#include <gl\glext.h>
PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB = NULL;
PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB = NULL;
char* ext = (char*) glGetString(GL_EXTENSIONS);
if(strstr(ext, "GL_ARB_point_parameters") == NULL)
{
MessageBox(NULL, "GL_ARB_point_parameters EXTENSION CAN'T BE FOUND", ERROR, MB_OK|MB_ICONEXCLAMATION);
exit(0);
}
else
{
glPointParameterfARB = (PFNGLPOINTPARAMETERFARBPROC)wglGetProcAddress("glPointParameterfARB");
glPointParameterfvARB = (PFNGLPOINTPARAMETERFVARBPROC)wglGetProcAddress("glPointParameterfvARB");
if(!glPointParameterfARB || !glPointParameterfvARB)
{
MessageBox(NULL,"一个或多个 GL_ARB_point_parameters 函数没有找到","ERROR",MB_OK|MB_ICONEXCLAMATION);
exit(0);
}
}
2、设置属性
glEnable(GL_TEXTURE_2D);
float quadratic[] = {1.0, 0, 0, 1.0};
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);//在使用电参数时,我们需要的是圆点而不是方块点,因此需要启用抗锯齿功能,这就是完成这个任务
glDisable(GL_DEPTH_TEST);
glEnable(GL_POINT_SPRITE);
glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, quadratic);
glPointParameterfARB(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 10.0f);
glTexEnvf(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE);
glPointParameterfARB(GL_POINT_SIZE_MIN_ARB, m_ParticleSize);
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);
glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT);
3、画点使用
glBegin(GL_POINTS);
DrawParticles(pParticles, len);
glEnd();
opengl 点精灵的使用相关推荐
- OpenGL点精灵PointSprite详解: 纹理映射,旋转,缩放,移动
第一,什么是点精灵 openGL的图形由顶点构成,以后利用顶点进行纹理的映射.点精灵就是,一个顶点被当作一个精灵来处理.特别之处就是,一个顶点也可进行纹理贴出.例如,原来是个顶点构成的一个矩形,现在一 ...
- OpenGL点精灵PointSprite详解
第一,什么是点精灵 openGL的图形由顶点构成,以后利用顶点进行纹理的映射.点精灵就是,一个顶点被当作一个精灵来处理.特别之处就是,一个顶点也可进行纹理贴出.例如,原来是个顶点构成的一个矩形,现在一 ...
- OpenGL 点精灵效果
点精灵效果简介 点精灵其实是OpenGL 1.5及之后的版本所支持的一个特性,通过点精灵这个特性,我们可以通过绘制1个3D点,去将一个2D纹理图像显示在屏幕的任意位置.所以我们可以用点去表示屏幕上移动 ...
- OpenGL使用精灵图集
使用OpenGL绘制开机动画,fps30,使用精灵图集 使用OpenCV载入纹理. 运行环境ubuntu16, 废话不多说,上源码. 主程序main.cpp // // Created by czh ...
- OpenGL点精灵(Point Sprite)
From:http://iiunknown.blogbus.com/logs/48250551.html 在很多粒子的demo中,看到把粒子显示成一个个小球,如果你以为那是用glutSolidShpe ...
- PAOGD个人作业4——利用OpenGL设计贪吃蛇游戏
中山大学数据科学与计算机学院本科生实验报告 (2019年春季学期) 课程名称 PAOGD 任课老师 郑贵锋 年级 16 专业(方向) 软件工程(计算机应用方向) 学号 16340132 姓名 梁颖霖 ...
- OpenGL pointsprites点精灵的实例
OpenGL pointsprites点精灵 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include "vapp.h" #includ ...
- 如何用OpenGL的点精灵(point sprite)绘制雪花?
看冬奥才知道,阿勒泰不但是中国的"雪都",还是"人类滑雪起源地".这个说法是否成立,姑且不论,阿勒泰的雪的确很漂亮.冬奥会有一个宣传片,就是借用一朵阿勒泰雪花的 ...
- 【我的OpenGL学习进阶之旅】介绍一下 图元的类型:三角形、直线和点精灵
目录 一.图元 1.1 三角形 1.2 直线 1.2.1 直线的宽度 1.2.1.1 线段的宽度用`glLineWidth` API调用指定. 1.2.1.2 支持的线宽范围查询. 1.3 点精灵 1 ...
最新文章
- python主要用途-Python能用来做什么?以下是Python的三大主要用途
- 153.复用的相关概念 154.信道共享技术有哪些?
- OpenGL deferred shading延迟渲染的实例
- gulp-babel 阻止了js文件编译的进程?
- Facebook押注VS Code
- CodeForce 180 C ——Letter
- raw socket java_记一次蛋疼的Raw socket发送经历。附:Raw socket编程总结
- CentOS搭建Ghost博客
- STK之Commu模块之二-仿真同步卫星与地面站通信显示EIRP分布
- 寻找春天nbsp;九宫格日记-2011.04.17
- 基于Android的城市环境监测系统
- C# 使用OpenXML创建PPT表格
- ppt python动画_ppt中如何插入动画 python入门教程(非常详细)
- MATLAB图中图绘制(局部放大图)
- 2017 闰秒 linux,闰秒为什么会导致Linux出现问题
- 怎么跨网段用计算机名访问,如何在不同的网段上互相访问
- 这次,AMD又将数据中心标准提高了一大截
- ping协议(ICMP)的原理
- LTE入门, 从这本书开始
- 深圳软件测试培训:Postman的Monitor功能