自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 资源 (8)
  • 收藏
  • 关注

原创 说说SIGCLD和SIGCHLD

在学习 APUE 信号一章时,书中描述 SIGCLD和 SIGCHLD信号时,我一时没有搞清楚,在查阅一些资料后把二者的不同描述在此。APUE这本书有一个很大的特点是:它全书写的是Unix平台的编程,因此会引入很多不同平台的差异,这在编写跨平台应用程序的时候有很大的参考价值。但是这样也带来了一个不好的后果:如果一个刚接触Unix编程的读者在读这些内容时(假设像我一样使用Linux平台学习),会一时抓不住重点,书中论述的在不同平台下的不同差异反而会成为学习的负担。另外还有一个更糟的问题是:对比的几个平台大部

2021-09-11 11:05:40 872

原创 QTreeWidget勾选QTreeWidgetItem的处理

1. 简介QTreeWidget提供许多自身状态改变信号,但是缺少了一种常用的信号:勾选其中某一项时的信号(使用的QTreeWidgetItem是可以Check的,通过setCheckState设置)没有Check信号时,可以使用void itemChanged(QTreeWidgetItem * item, int column) 这个信号,但是这个信号的触发情况太多,随便选择一项(并不是勾...

2019-04-29 17:57:42 10199 1

原创 OpenThreads库介绍——Barrier

1. 简介Barrier是线程栅栏类。这是一个对于线程同步颇为重要的阻塞器接口,它的构造函数与BlockCount 类似,可以设置一个整数值,我们可以把这个值理解成栅栏的“强度”。每个执行了Barrier::block()函数的线程都将被阻塞;当被阻塞在栅栏处的线程达到指定的数目时,就好比栅栏无法支撑那么大的强度一样,栅栏将被冲开,所有的线程将被释放。重要的是,这些线程是几乎同时释放的,也...

2018-03-15 14:48:42 1839

原创 OpenThreads库介绍——Block

1. 简介Block 是OpenThreads中的阻塞器类。顾名思义,这个类的作用就是阻塞线程的执行,使用block()阻塞执行它的线程(注意,不一定是定义它的Thread 线程,而是当前执行了block 函数的线程,包括系统主进程),并使用release()释放之前被阻塞的线程。2. 实现OpenThreads库中的Block文件中包括两个类的实现:Block和Block...

2018-03-15 14:48:31 3901

原创 OpenThreads库介绍——Condition

1. 简介Condition 类是条件变量。它依赖于某个Mutex 互斥体,互斥体加锁时阻塞所在的线程,解锁或者超过时限则释放此线程,允许其继续运行。这里涉及了几个线程操作中重要的概念:同步,阻塞以及条件变量。线程同步,简单来说就是使同一进程的多个线程可以协调工作,例如让它们都在指定的执行点等待对方,直到全员到期之后才开始同步运行;拥塞,即强制一个线程在某个执行点上等待,直到满足继续运行的条件...

2018-03-15 14:48:17 2567

原创 OpenThreads库介绍——ReadWriteMutex

1. 读写锁简介OpenThreads库中的ReadWriteMutex是一种读写锁,读写锁是计算机程序的并发控制的一种同步机制,也称“共享-互斥锁”、多读者-单写者锁。多读者锁,用于解决读写问题。读操作可并发重入,写操作是互斥的。简单来说就是允许多个线程同时读取资源,但是一旦要修改资源(写操作),那么所有读的线程都必须被阻塞,直到写的线程完成修改。2. 类型读写锁可以根据实际的需...

2018-03-15 14:48:03 721

原创 OpenThreads库介绍——Mutex

1. 简介Mutex 是互斥体接口类。如同pthread 等常用的线程库那样,OpenThreads 也提供了互斥体操作的机制,它有效地避免了各个线程对同一资源的相互竞争,即,某一线程欲操作某一共享资源时,首先使用互斥体成员的lock()函数加锁,操作完成之后再使用unlock 函数解锁。一个线程类中可以存在多个Mutex 成员,用于在不同的地点或情形下为共享区域加锁;但是一定要在适当的时候解...

2018-03-15 14:47:49 1335

原创 OpenThreads库介绍——Thread

OpenThreads库是一个轻量级的跨平台多线程库,在2.x之前是独立发展的一个库,在2.x后并入到OSG的源码中,OSG中大量的多线程操作都是基于这个库编写的。(事实上使用该库是历史原因的问题,在OSG创立的时候,C++标准中并没有C++11引入的线程库),库的详细介绍参考:OpenThreads站点Thread线程线程实现类。它是一个面向对象的线程实现接口,每定义一个Thread...

2018-03-15 14:47:33 6557

原创 go-gl第一个三角形(三)

1. 简述根据OpenGL版本的不同,在场景中绘制几何体的方式和使用的OpenGL函数有很大的差别,概括起来包括: OpenGL模式 方式 备注 LegecyOpenGL 立即模式 LegecyOpenGL DispalyList(显示列表) LegecyOpenGL VertexArray的方式 Lege...

2018-03-12 19:38:00 593

原创 go-gl第一个窗口(二)

1. 初始化程序首先添加引用的包,包括glfw和go-glimport ( "runtime" "github.com/go-gl/glfw/v3.2/glfw" "github.com/go-gl/gl/v3.3-core/gl")程序窗口的创建代码非常简单,需要注意的是runtime.LockOSThread调用是必须的,原因参考:LockOST...

2018-03-09 09:26:15 1187

原创 go-gl搭建开发环境(一)

1. 简介Go语言(Golang)是Google在2009年推出的一种编程语言。Golang是一门开源的语言,可以从github上找到它的源码。Golang也是一门跨平台的语言,可以运行在Windows、Linux、Mac OS X以及Plan9等操作系统上,更多详细的介绍可以参考Golang的官方网站本文主要介绍使用Golang如何开发OpenGL程序,搭建go-gl的开发环境。使用...

2018-03-07 22:57:04 5240

原创 OpenGL的Context(Profile)

OpenGL在渲染的时候需要一个Context,这个Context记录了OpenGL渲染需要的所有信息,可以把它理解成一个大的结构体,它里面记录了当前绘制使用的颜色、是否有光照计算以及开启的光源等非常多我们使用OpenGL函数调用设置的状态和状态属性。在OpenGL 3.0版本之前,OpenGL创建Context都是一致的,随着升级会新增一些内容(例如从OpenGL1.1升级到1.5,会新增一些状

2018-01-12 18:01:50 8619 2

原创 反走样和OpenGL多重采样

介绍OpenGL中反走样算法MSAA的使用和细节

2017-12-29 16:08:35 5965 4

原创 Freeglut中无法打开文件"freeglutd.lib"

Freeglut无法打开freeglutd.lib错误的处理方法

2017-12-05 15:51:22 8842 1

原创 线形对象与平面相交

直线、射线、线段与平面交点的算法和实现

2017-10-12 10:31:15 2406

原创 osg几何体的图元的遍历

OSG提供的通过仿函数遍历几何体的方式

2017-10-10 16:04:08 8412 4

原创 OSG可绘制体Drawable

osg中可绘制体对象

2017-09-29 19:22:29 3277

原创 非类型模板参数的限制

C++非类型模板参数的限制

2017-09-26 11:49:19 2760

原创 C++中typedef和类型别名

C++中类型别名定义typedef以及C++11种 alias declaration(使用using)

2017-09-20 11:24:18 10045

原创 OSG在事件处理中由于模态对话框导致后续事件出错的问题

OSG事件处理过程中弹出模态对话框导致后续事件出错的Bug处理

2017-09-13 12:04:12 865

原创 Skyline Globe中3dml图层的遍历

遍历获取3dml图层中的要素

2017-08-07 16:40:22 2990

原创 OSG动画库Animation解析(三)

本文主要介绍动画中其他的一些内容,主要包括权、优先级、以及动画变换中的顺序等内容。

2017-07-28 11:58:22 2609

原创 OSG动画库Animation解析(二)

本文继续(一)中的内容,讨论了osgAnimation中的Target和UpdateMatrixTransform以及osgAnimation中对动画的管理

2017-07-26 18:14:36 2641

原创 OSG动画库Animation解析(一)

本文主要介绍osgAnimation中关键帧、插值器、采样器、频道和动画等概念,以及它们的使用方式和原理

2017-07-25 18:27:49 8056 2

原创 OSG渲染状态管理

OSG对OpenGL中状态机的封装,主要介绍与此相关的几个osg的类:State\StateSet\StateAttribute

2017-07-10 18:25:02 6824

原创 直线射线线段的相交判断

本文主要介绍计算机图形学中线型对象的一些几何关系判断,包括直线、射线和线段。

2017-06-29 15:37:36 19131 1

原创 两向量的夹角

计算两个向量间的夹角

2017-06-20 17:38:11 136470 2

原创 QProcess调用外部程序

QProcess调用外部程序的处理

2017-05-23 15:59:57 4897

原创 旋转变换(三)四元数

简要介绍了四元数的概念和基本运算,以及如何构造一个用来描述三维旋转的四元数

2017-03-29 11:59:38 18426 10

原创 旋转变换(二)欧拉角

本文主要描述了关于三维旋转的一种描述方式--欧拉角的概念以及应用以及使用它的一些缺陷

2017-03-28 17:00:56 59292 8

原创 旋转变换(一)旋转矩阵

本文主要介绍了计算机图形学中的旋转的概念和矩阵的描述方式,包括二维和三维旋转矩阵的推导过程

2017-03-27 17:15:37 341764 64

原创 OpenGL基本图元转换为GL_TRIANGLES

基本图元转换到三角形的处理方式

2017-02-09 18:24:45 13679

原创 osg示例解析之osgLight(1)

osgLight示例

2017-01-06 11:55:09 1740

原创 OpenGL API 之 glTexEnv

OpenGL glTexEnv API详细说明

2016-12-08 16:38:22 3200 1

翻译 OpenGL像素格式

OpenGL像素传输

2016-12-05 14:48:52 2722

原创 OpenGL的基础光照和计算

本文主要介绍了OpenGL中的光照以及固定管线光照的计算(在Coreprofile中的计算)

2016-11-30 11:48:52 8175

翻译 OpenGL图像格式

OpenGL ImageFormat

2016-11-22 11:38:48 5616

原创 OpenGL缓冲区对象之VAO

OpenGL VAO缓冲区介绍

2016-11-17 15:34:00 17810 1

原创 OpenGL缓冲区对象之EBO

OpenGL缓冲区对象 EBO的介绍和示例

2016-11-17 11:08:30 6223 4

原创 OpenGL缓冲区对象之FBO

FBO

2016-11-15 11:44:39 15076

OSG3.6 API开发手册

自己编译的OSG 3.6 开发手册,chm格式,给有需要的朋友们,积分修改成1分。3.6版本是在3.4基础上升级的稳定版本,可以更好的开发三维程序

2018-04-26

OpenThreads库API手册(osg3.6.0)

自己编译的OpenThreads手册,chm格式的,欢迎下载。(该资源只有OpenThreads API,不包含OSG,如果需要OSG请搜索我的其他资源)

2018-04-26

行主序和列主序矩阵的演示

博客中附带的源码,主要包括3D图形学中矩阵的实现,实现方式有行主序和列主序两种,整个程序是一个测试的程序,希望对读者有帮助

2018-01-25

VS2015编译OSG的三方库

VS2015编译的OSG三方库,包括以下库:freetype gdal giflib glut jpeg libcurl libpng libtiff minizip proj zlib

2017-02-17

Qt ActiveX测试代码

博客中(http://blog.csdn.net/csxiaoshui/article/details/48000885) 提到的测试代码,写的比较随意,仅供参考!

2017-01-04

VS2015下OpenGL开发库(glew、glfw、soil、freeglut)

glew 2.0 glfw 3.2 soil 以及 freeglut 3.0,下载后放到VS2015安装目录下的VC目录即可

2016-12-15

Geos编译需要的CMakeLists.txt

使用Visual Studio编译Goes中的需要的文件

2016-07-01

osgNeHe Lesson 01

第一课的源码,可能有一些错误和不足,仅供参考。

2014-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除