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 点精灵的使用相关推荐

  1. OpenGL点精灵PointSprite详解: 纹理映射,旋转,缩放,移动

    第一,什么是点精灵 openGL的图形由顶点构成,以后利用顶点进行纹理的映射.点精灵就是,一个顶点被当作一个精灵来处理.特别之处就是,一个顶点也可进行纹理贴出.例如,原来是个顶点构成的一个矩形,现在一 ...

  2. OpenGL点精灵PointSprite详解

    第一,什么是点精灵 openGL的图形由顶点构成,以后利用顶点进行纹理的映射.点精灵就是,一个顶点被当作一个精灵来处理.特别之处就是,一个顶点也可进行纹理贴出.例如,原来是个顶点构成的一个矩形,现在一 ...

  3. OpenGL 点精灵效果

    点精灵效果简介 点精灵其实是OpenGL 1.5及之后的版本所支持的一个特性,通过点精灵这个特性,我们可以通过绘制1个3D点,去将一个2D纹理图像显示在屏幕的任意位置.所以我们可以用点去表示屏幕上移动 ...

  4. OpenGL使用精灵图集

    使用OpenGL绘制开机动画,fps30,使用精灵图集 使用OpenCV载入纹理. 运行环境ubuntu16, 废话不多说,上源码. 主程序main.cpp // // Created by czh ...

  5. OpenGL点精灵(Point Sprite)

    From:http://iiunknown.blogbus.com/logs/48250551.html 在很多粒子的demo中,看到把粒子显示成一个个小球,如果你以为那是用glutSolidShpe ...

  6. PAOGD个人作业4——利用OpenGL设计贪吃蛇游戏

    中山大学数据科学与计算机学院本科生实验报告 (2019年春季学期) 课程名称 PAOGD 任课老师 郑贵锋 年级 16 专业(方向) 软件工程(计算机应用方向) 学号 16340132 姓名 梁颖霖 ...

  7. OpenGL pointsprites点精灵的实例

    OpenGL pointsprites点精灵 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include "vapp.h" #includ ...

  8. 如何用OpenGL的点精灵(point sprite)绘制雪花?

    看冬奥才知道,阿勒泰不但是中国的"雪都",还是"人类滑雪起源地".这个说法是否成立,姑且不论,阿勒泰的雪的确很漂亮.冬奥会有一个宣传片,就是借用一朵阿勒泰雪花的 ...

  9. 【我的OpenGL学习进阶之旅】介绍一下 图元的类型:三角形、直线和点精灵

    目录 一.图元 1.1 三角形 1.2 直线 1.2.1 直线的宽度 1.2.1.1 线段的宽度用`glLineWidth` API调用指定. 1.2.1.2 支持的线宽范围查询. 1.3 点精灵 1 ...

最新文章

  1. python主要用途-Python能用来做什么?以下是Python的三大主要用途
  2. 153.复用的相关概念 154.信道共享技术有哪些?
  3. OpenGL deferred shading延迟渲染的实例
  4. gulp-babel 阻止了js文件编译的进程?
  5. Facebook押注VS Code
  6. CodeForce 180 C ——Letter
  7. raw socket java_记一次蛋疼的Raw socket发送经历。附:Raw socket编程总结
  8. CentOS搭建Ghost博客
  9. STK之Commu模块之二-仿真同步卫星与地面站通信显示EIRP分布
  10. 寻找春天nbsp;九宫格日记-2011.04.17
  11. 基于Android的城市环境监测系统
  12. C# 使用OpenXML创建PPT表格
  13. ppt python动画_ppt中如何插入动画 python入门教程(非常详细)
  14. MATLAB图中图绘制(局部放大图)
  15. 2017 闰秒 linux,闰秒为什么会导致Linux出现问题
  16. 怎么跨网段用计算机名访问,如何在不同的网段上互相访问
  17. 这次,AMD又将数据中心标准提高了一大截
  18. ping协议(ICMP)的原理
  19. LTE入门, 从这本书开始
  20. 深圳软件测试培训:Postman的Monitor功能

热门文章

  1. Java实现统计字符串中的字母和数字分别有多少个
  2. oracle导入半个汉字的问题
  3. java弹出浏览器提示框_js弹出框、对话框、提示框、弹窗总结
  4. 换发型算法_如何用手机美图秀秀换发型
  5. ansible角色部署lamp架构
  6. 华清远见重庆中心—JavaWeb技术总结/个人总结
  7. seamless video loop with videoview
  8. maven-shade-plugin详解
  9. 加速元宇宙技术落地,网易云信亮相 MetaCon 元宇宙技术大会 2022
  10. 显微病理PACS系统源码 医院系统源码 HIS源码