点击这里:Win32 OpenGL编程(13) 隐藏表面消除(深度测试)及雾效果
隐藏表面消除(深度测试) 其实这是个滞后话题了事实上应该在光照节就应该详述但是光照内容本来就多所以当时并没有再牵涉此内容 在我们填充 3维物体时和平面绘制区别牵涉到了前面物体遮挡后面物体问题假如没有个很好内置机制我们就只能通过记住每个物体Z轴(其实也不定是Z轴看当时观察方向)然后按顺序将远物体先绘制然后再绘制离我们近通过这种方式可以让离我们近物体绘制在后面覆盖掉远物体 当然假如觉得不麻烦话这... [阅读全文]
win32多线程编程:Win32 OpenGL编程(12) 混合及半透明效果
混合力量是很强大就如巴尔扎克所言而图形处理中很多有趣且实用效果在OpenGL中其实都可以用混合来实现比如最最常用半透明效果这种效果在compiz3D桌面效果中得到了极致发挥让人印象深刻即使你从来不使用Linux你也可以去看看很多人秀自己Linux桌面效果视频要知道这效果出来时候连Vista都还不知道在哪呵呵可惜是个桌面系统好不好不仅仅是靠谁更炫来比较 概念 在OpenGL中混合是指啥?就如混合... [阅读全文]
win32编程:Win32 OpenGL编程(11) 光照
最近跟风看了思维导图用XMind为此节画了个思维导图事实上感觉这种书说起来不定完全没有用但是为了显示有用似乎说太过夸张了基本上我认可图胜千言吧另外XMind还算比较好用特别是上传然后共享方式比较方便:)基础版还开源 图片看不清楚?请点击这里查看原图(大图) 上面这种图用于解释概念就略显简单但是用于梳理脉络复习时回忆概念还算是比较有用 上帝说要有光就有了光---- 旧约•创世纪 ... [阅读全文]
opengl编程视口:Win32 OpenGL编程(10) 视口变换
提要 在前文(系列文章(7)以下简称XO7系列其他文章类似)中照相机比喻中提到了4种3D变换如下: 1.确定照相机位置过程对应于“视图变换”(Viewing Transformations) 2.确定物体位置过程对应于“模型变换”(Modeling Transformations) 3.确定照相机放大倍数过程对应于“投影变换&rd... [阅读全文]
opengl编程投影变换:Win32 OpenGL编程(9) 投影变换
提要 在前文(系列文章(7)以下简称XO7系列其他文章类似)中照相机比喻中提到了4种3D变换如下: 1.确定照相机位置过程对应于“视图变换”(Viewing Transformations) 2.确定物体位置过程对应于“模型变换”(Modeling Transformations) 3.确定照相机放大倍数过程对应于“投影变换&rd... [阅读全文]
Win32 OpenGL编程系列 2D例子 -- 7巧板图形绘制
作为学习OpenGL例子的用自然要使用OpenGL来绘制啦虽然这么简单图形根本用不着OpenGL别说我用大炮打苍蝇用牛刀杀鸡-_-!是学习OpenGL嘛所以在2D坐标系中还是使用了OpenGL 坐标系并且为了追求显示完美(主要是旋转)我选取了所有图形重心作为每个图形坐标系原点这样旋转时中心就是每个图形中心这样比使用rgnbox获取边框然后取中心旋转效果要好具体旋转效果需要自己添加代码去尝试了Rot... [阅读全文]
点击这里:Win32 OpenGL编程(8) 3D模型变换及其组合应用
提要 在前文(系列文章(7)以下简称XO7系列其他文章类似)中照相机比喻中提到了4种3D变换如下: 1.确定照相机位置过程对应于“视图变换”(Viewing Transformations) 2.确定物体位置过程对应于“模型变换”(Modeling Transformations) 3.确定照相机放大倍数过程对应于“投影变换&rd... [阅读全文]
点击这里:Win32 OpenGL编程(7) 3D视图变换——真3D的关键
照相机比喻 在OpenGL Programming Guide中将所有3D变换统到个有意思现实世界模型照相机比喻 1.确定照相机位置过程对应于“视图变换”(Viewing Transformations) 2.确定物体位置过程对应于“模型变换”(Modeling Transformations) 3.确定照相机放大倍数过程对应于“... [阅读全文]
Win32 OpenGL编程(6) 踏入3D世界
3D坐标轴 区别般流程我们从个3D坐标轴开始进入3D世界主要是为了将来和3D线框模型做对比用 3D和以前学过2D最大区别就是我们需要考虑物体Z轴坐标而不再是假设任何物体Z轴都是0.0首先看我们绘制个3D空间坐标轴情况为了形象我将其旋转了定角度以下是源代码:void DrawCoordinate{ GLfloat fCoorDatas = { 0.0, 0.0, 0.0, // Ori... [阅读全文]
win32编程:Win32 OpenGL编程(5)顶点数组详细介绍
需求 按照前面已经讲过内容来说简单2D图形绘制已经没有问题了并且很多东西其实已经涉及到3D但是会发现复杂图形绘制时glBegin和 glEnd对中指定顶点会非常多glVertex开销会过大(虽然在C/C中开销其实已经比较小)在3D图形绘制时此问题更加严重想想个 4边形4个顶点个 4方体就有8个顶点了但是按照我们目前描述平面方式来描述就是需要指定6 * 4 = 24个顶点这正是OpenGL作为高... [阅读全文]
点击这里:Win32 OpenGL编程(4) 2D图形基础(颜色及坐标体系进阶知识)
、 提要 OpenGL本身是作为高性能3D图形绘制设计实际上光是用于2D绘图话OpenGL显得相对复杂但是2D作为3D基础也值得稍微学习下说直白点3D不过是在2D上增加了维虽然此维让世界整个变了样本文从本系列文章3(链接见本文最后本系列其他文章以后简称XO3)中为了简化介绍说明没有提及OpenGL默认些默认环境值切入接着讲解些OpenGL下绘制2D图形技术逐渐从原来单图元向多种图元组合图形相... [阅读全文]
点击这里:Win32 OpenGL编程(3) 基本图元(点 直线 多边形)的绘制
、 提要 在前面两篇相关文章 Win32 OpenGL 编程(1)Win32下OpenGL编程必须步骤 Win32 OpenGL编程(2) 寻找缺失OpenGL 中我们已经建立了个较为全面Win32 OpenGL编程环境及个简单框架并且实际上掌握了OpenGL在Windows下和Win32窗口交互思路方法在此基础上总算是可以正式进行些OpenGL相关知识学习前面那些也就算是热身本文目... [阅读全文]
opengl对称函数:Win32 OpenGL编程(2) 寻找缺失的OpenGL函数
、 提要 以前在 Win32 OpenGL 编程(1)Win32下OpenGL编程必须步骤文中提供了个较为完整Win32下编写OpenGL框架但是仅仅提到是此Win32框架所需要些东西事实上由于MS为了维护自家DirectX所以很早就放弃了对OpenGL支持在Windows XP平台上实现OpenGL还是1.1版(新版Windows看资料好像会好点但是事实上OpenGL最新版已经是3.2了)... [阅读全文]
win32编程教程:Win32 OpenGL 编程(1)Win32下的OpenGL编程必须步骤
、 前言 人生在于折腾继续折腾吧OpenGL编程红宝书OpenGL Programming Guide在举例子时候为了平台无关使用都是GLUT来管理窗口个人感觉不爽-_-! 要是针对Windows平台个人倾向使用Win32(MFC也行)要是跨平台我还会Qt嘛Qt对OpenGL也有很好支持为啥还折腾个新窗口管理组件?虽然说GLUT比较简单但是还是不喜欢扭曲适应的何况我去看了下GLUT这个东西最... [阅读全文]
win32编程:Win32编程点滴- 窗口的位置
把你Windows任务栏移到屏幕上方你就会发现有多少会在启动时候把自己标题栏移到任务栏下方以至于不能用鼠标移动它甚至有窗口还没有系统菜单(Atl + 空格 打开系统菜单可以移动窗口)所以这篇文章我们来讨论下窗口位置以避免这样事情发生 如果让你写个要把窗口位置移动到桌面左上角我想很多人都会写出如下代码:MoveWindow(hWnd,0,0,?,?); 后面?位置如何填写呢?很多人就会找到Get... [阅读全文]
基于常用直流开关电源的保护电路设计
概 述 随着科学技术发展电力电子设备和人们工作、生活关系日益密切而电子设备都离不开可靠电源因此直流开关电源开始发挥着越来越重要作用并相继进入各种电子、电器设备领域程控交换机、通讯、电子检测设备电源、控制设备电源等都已广泛地使用了直流开关电源[1-3]同时随着许多高新技术包括高频开关技术、软开关技术、功率因数校正技术、同步整流技术、智能化技术、表面安装技术等技术发展开关电源技术在不断地创新这为直流... [阅读全文]
activex控件:Win32编程点滴 - 响应ActiveXControl控件的事件
在最近篇文章中说到了如何创建ActiveX这次我们来响应事件这次我们将创建个类:CGeneralEventSink它能够响应任何Dispatch事件(事件接口继承和IDispatch) 首先我们来回顾下ConnectionPo概念任何支持事件对象(比如ActiveXControl控件)都支持IConnectionPoContainer接口顾名思义就是个IConnectionPo容器包含了这个对象... [阅读全文]
autocomplete:Win32编程点滴 - 玩转AutoComplete
SHAutoComplete 要最简单地实现AutoComplete只要下面那样ShAutoComplete即可: SHAutoComplete(GetDlgItem(hDlg,IDC_EDIT2),SHACF_FILESYSTEM|SHACF_AUTOSUGGEST_FORCE_ON); SHAutoComplete第个参数是editControl控件句柄(或者是ComboBox中edi... [阅读全文]
freeloop:Win32编程点滴:消息循环(Message loop)
第个版本 首先让我们来写个最容易让人想到消息循环形式:MSG msgwhile( GetMessage(&msg,NULL,0,0) ){ TranslateMessage(&msg); DispatchMessage(&msg);} GetMessage第个参数是用来获取MSG结构指针第 2个参数是个窗口句柄(HWND)用来获取指定窗口消息填NULL表示获取当前线程所有窗口消息... [阅读全文]
activex控件编程:Win32编程点滴 - 简单ActiveXControl控件的使用
虽然这里片.net气氛到处充斥着像MVC、WPF、WorkFlow、LINQ等各种niubility术语但我们使用Windows还是由COM技术主宰着;我们在选择日常使用软件Software时也会避免使用.net开发软件Software即便是.net桌面也会经常使用ActiveXControl控件这篇文章就让我们用最原始方式来使用ActiveX不使用任何MFC,ATL等框架也不使用编译器提供#... [阅读全文]
qtp脚本:编写图片空间QTP脚本时的一点经验
我录制QTP脚本思路是让能跑起来都跑起来不能跑起来暂时不管同时先采取固化脚本思路写脚本(详细)完成后再加入参数化让脚本灵活起来!呵呵! 以下是我编写图片空间时点经验! 经验1:用FireEvent思路方法处理TOP菜单中弹出子菜单 Browser(”淘宝网-店铺管理平台“).Page(”淘宝网-店铺管理平台“).Link(”素材管... [阅读全文]
说清汇编中的栈操作地址问题
文章其实很简单在这里只是想给大家个提醒让大家回顾下曾经知识而已大学知识现在你还记得么? 另外善意提醒下博客园团队(Team)虽然我理解商业重要性但是我个人还是希望把培训学校广告撤下博客园首页广告行列中我相信博客园是个纯洁技术博客大家对博客园都非常信任我们不希望让太多初学者受到这个影响个人意见而已 我刚才做个小软件Software破解直被堆栈操作弄得昏昏沉沉在这里写下也算是加深下自己印象做个整理... [阅读全文]
用win32汇编画 8卦图
汇编图: 这几天在学习汇编语言图形操作于是想起以前用C#画过个小 8卦图 半径R自己给……Graphics g = e.Graphics; Brush fillWhiteBrush = Brushes.White; Brush fillBlackBrush = Brushes.Black; g.... [阅读全文]
新概念语法:AT& T x86 asm 语法
DJGPP 使用AT&T格式汇编语法和般el格式语法有点区别主要区别点如下: AT&T 语法颠倒了源和目操作数位置, 目操作数在源操作数的后寄存器操作数要有个%前缀, 立即数操作数要有个$符号前缀 存储器操作数大小取决于操作码最后个 它们是b (8-bit), w (16-bit), 和 l (32-bit). 这里有些例子 左边部分是el指令格式右边是at&t格式movw %bx, %ax ... [阅读全文]
Linux 汇编语言开发指南
汇编语言优点是速度快可以直接对硬件进行操作这对诸如图形处理等关键应用是非常重要Linux 是个用 C 语言开发操作系统这使得很多员开始忘记在 Linux 中还可以直接使用汇编这底层语言来优化性能本文为那些在Linux 平台上编写汇编代码员提供指南介绍 Linux 汇编语言语法格式和开发工具并辅以具体例子讲述如何开发实用Linux 汇编 、介绍 作为最基本编程语言的汇编语言虽然应用范围不算很广但... [阅读全文]
相对寻址方式:对标号地址的另一种相对寻址方式
汇编中, 对数据访问时, 通常是这样:_asm{...DATA_LABLE: _emit 0x87 _emit 0xa0 _emit 0x49 _emit 0x90... mov ebx, dword ptr [DATA_LABLE]...} 其中, 当编译的后, mov指令中DATA_LABLE标号地址会被转成个绝对地址. 而有时绝对地址这点可能会对这样种需求带来障碍: 我... [阅读全文]
汇编语言命令参数程序的编写
、 引言: 如果大家用过TurboC2.0/3.0 or BorlandC3.X等编译器编写DOS应用话编写个命令行参数形式应用对大家来说是件非常容易事情只要在主函中加几个参数就OK( ( argc,char *argv,char *env){})相对汇编语言来说编写个命令行参数就比较艰难它要用到DOS段前缀PSP(Program Segment Prefix)知识以及其他相关DOS知识(本文只... [阅读全文]
子程序:定时器时间数据转换子程序分析
进日我在看时钟TSR分析其中个把BIOS数据区中定时器数据转换成HH:MM:SS时间格式数据(ASCII)片段时既学到点东西又发现了写自己弄不明白问题现在我把自己学到好东西写出来和大家分享同时向各路高手请教请教 片段如下:(汇编语言)... (省略) HMS db 8 dup(:)...time proc lea di,position ;(1) --行号mov ax,0 ... [阅读全文]
" hello world!" win32汇编小程序
"hello,world!"win32汇编小szText db "Hello, world!",0 szCaption db "Win32Asm",0 .codestart: push MB_OK lea eax,szCaption push eax lea eax,szText push eax push NULL call messagebo... [阅读全文]