<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[失魂落魄 - 技术相关]]></title>
<link>http://JiangBo.name/blog/</link>
<description><![CDATA[Creative, energetic and cooperative……]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[jb4652@gmail.com(Bob)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>失魂落魄</title>
	<url>http://JiangBo.name/blog/images/logos.gif</url>
	<link>http://JiangBo.name/blog/</link>
	<description>失魂落魄</description>
</image>

			<item>
			<link>http://JiangBo.name/blog/article.asp?id=275</link>
			<title><![CDATA[发现了个Mesa3D的bug]]></title>
			<author>jb4652@gmail.com(Bob)</author>
			<category><![CDATA[技术相关]]></category>
			<pubDate>Tue,16 Feb 2010 23:38:14 +0800</pubDate>
			<guid>http://JiangBo.name/blog/default.asp?id=275</guid>
		<description><![CDATA[　　刚正儿八经用了一天，就发现跑红宝书的例子mvarray.c有问题，OpenGL1.4的扩展glMultiDrawElements函数的实现有bug……<br/>　　试了一晚上还是觉得不是自己的问题，于是report到Mesa3D的邮件列表。隔了一天，开发者回了，说确实有问题。看commit的备注，似乎去年9月就发现这个函数有问题，不过改来改去还是没改对，汗……<br/>　　贴一下邮件内容，希望下次我也能像上次发现vcglib的bug那样自己提交一份patch。特佩服老外，这个<a target="_blank" href="http://www.mesa3d.org/brianp/" rel="external">Brian Paul</a>本身在VMware, Inc.供职，还负责维护这么大一个开源项目，而且这样的老外似乎很多。另外给老外写邮件，不管对方多大牌，你的问题多幼稚，一般都会收到回复，哪像国内的人，发了基本等于石沉大海……<br/><br/>Re: [Mesa3d-users] glMultiDrawElements Problem<br/><br/>Bo Jiang wrote:<br/>&gt; Dear all,<br/>&gt;&nbsp;&nbsp; I tried the sample program &#34;mvarray.c&#34; of OpenGL Programming Guide <br/>&gt; (red-book) with Mesa3D 7.6.1 but the result showed only the last line <br/>&gt; stripe regardless of how many line stripes to draw. (I copy Mesa&#39;s <br/>&gt; OPENGL32.DLL to my binary program directory to use Mesa instead of <br/>&gt; hardware driver)<br/>&gt; The result of my hardware driver is right.<br/><br/>I found the mvarray.c program and verified the issue.&nbsp;&nbsp;I&#39;m committing<br/>a fix.&nbsp;&nbsp;It&#39;ll be in the next Mesa release.&nbsp;&nbsp;I&#39;m attaching the patch in<br/>case you want to apply it locally.<br/><br/>-Brian]]></description>
		</item>
		
			<item>
			<link>http://JiangBo.name/blog/article.asp?id=274</link>
			<title><![CDATA[用软件模拟OpenGL扩展]]></title>
			<author>jb4652@gmail.com(Bob)</author>
			<category><![CDATA[技术相关]]></category>
			<pubDate>Sun,14 Feb 2010 01:36:37 +0800</pubDate>
			<guid>http://JiangBo.name/blog/default.asp?id=274</guid>
		<description><![CDATA[　　大年三十写这种文章真是杯具……<br/>　　现在的好显卡虽然还是要几k，不过几百的也都可以跑OpenGL3.2了。哥的本子，独显，不过因为上了年纪，也只支持到1.3，至少不支持着色语言有点郁闷。<br/>　　好在现在软件比较牛X，连整台电脑都可以模拟，模拟个显卡当然也是不在话下了。虽然奇慢，但也比没得用强啊，特别是对初学OpenGL的童鞋。<br/>　　去下个Mesa3D，只要编译核心库就可以了，得到OPENGL32.DLL和GLU32.DLL。然后在你的OpenGL程序可执行目录下放上这两个文件，就可以替代显卡驱动执行OpenGL函数了。不过目前最新的Mesa3D7.7只支持到OpenGL2.1，不过可以跑GLSL已经是泪流满面了。]]></description>
		</item>
		
			<item>
			<link>http://JiangBo.name/blog/article.asp?id=273</link>
			<title><![CDATA[Outlook Express (OE)邮件及相关设置的备份]]></title>
			<author>jb4652@gmail.com(Bob)</author>
			<category><![CDATA[技术相关]]></category>
			<pubDate>Wed,02 Dec 2009 17:00:09 +0800</pubDate>
			<guid>http://JiangBo.name/blog/default.asp?id=273</guid>
		<description><![CDATA[　　虽然现在用Foxmail的人很多，不过我还是专一于第一眼就认识的OE。今天把笔记本上的邮件都搬到lab机器上了。总结一下免得自己都忘记了：）<br/>　　1、账户备份：菜单Tools-Accounts，然后选中要导出的账户，点导出即可，导出成.iaf文件；<br/>　　2、通讯簿：其实通讯簿不专属于OE，但OE会读取系统的通讯簿。在工具栏点Addresses按钮，会打开系统的通讯簿，然后导出所有到.wab文件即可；<br/>　　3、邮件：重头戏啦。因为目标机器的OE是全空的，所以没有用OE的导出邮件功能了，直接整锅端OE的邮件目录。每台机目录不一样，可以在菜单Tools-Options-Maintenance-Store Folder里查看，拷贝所有文件到目标OE的对应目录（先删除目标机目录里已有的文件），对于目标机器OE有邮件的情况，只能导出邮件，不过没试过……<br/>　　4、调整Tools-Options里的设置到以前就大功告成了。<br/><br/>　　BTW：这里的菜单用的英文，中文是对应的。另外，我是从中文版XP的OE备份到英文XP的OE，没有任何问题。英文版OE打开还是会显示中文的“收件箱”等，但是OE能识别出哪个是收件箱，哪个是发件箱，可能因为Folders.dbx里都有记录吧，我想对于自定义的文件夹应该也OK，只要Folders.dbx在。]]></description>
		</item>
		
			<item>
			<link>http://JiangBo.name/blog/article.asp?id=256</link>
			<title><![CDATA[人生第一次为开源事业做了一点小小小小的贡献]]></title>
			<author>jb4652@gmail.com(Bob)</author>
			<category><![CDATA[技术相关]]></category>
			<pubDate>Wed,21 Jan 2009 00:48:14 +0800</pubDate>
			<guid>http://JiangBo.name/blog/default.asp?id=256</guid>
		<description><![CDATA[　　发文纪念下，哈哈。<br/>　　曾经梦想写自己的库，发现一没水平，二来要啥库都已经有现成的了，甚为沮丧。不过没想到这次用<a target="_blank" href="http://vcg.sourceforge.net" rel="external">vcg</a>库，竟然还和浪漫的意大利人打了把交道。<br/>　　当初也是因为vcg实现了一些曲率计算的算法，我才偷懒用这个库的，后来发现里面写得还是有很多问题，于是改了下就自己用了。这次回来，之前改的留在了lab的计算机上，在家又要重新改，想想还不如和库的作者沟通下，看看要不要SVN Commit一下，结果没想到人家的效率还真高，这是<a target="_blank" href="http://sourceforge.net/forum/forum.php?thread_id=2496149&amp;forum_id=342260" rel="external">我们的讨论记录</a>，立马SVN Up&#100;ate了一下，哈哈，我改的代码成为正式code了。不过说真的，这只是一个小小小小的问题而已，还有些问题我要再验证一下才拿出去讨论，最好把我自己实现的新算法也放进去，哈哈。看了看<a target="_blank" href="http://vcg.svn.sourceforge.net/viewvc/vcg/trunk/vcglib/vcg/complex/trimesh/up&#100;ate/curvature.h?view=log" rel="external">Revision的log</a>，Revision 3223就是我修正的东西，只可惜啊，为啥又把我名字写错了呢，我中文名字就老被人写错，为虾米英文名字也不放过我，5555<br/>　　越来越喜欢跨平台，越来越喜欢开源了：）]]></description>
		</item>
		
			<item>
			<link>http://JiangBo.name/blog/article.asp?id=246</link>
			<title><![CDATA[DiskMan抢救病毒造成的硬盘分区表丢失]]></title>
			<author>jb4652@gmail.com(Bob)</author>
			<category><![CDATA[技术相关]]></category>
			<pubDate>Mon,06 Oct 2008 21:33:43 +0800</pubDate>
			<guid>http://JiangBo.name/blog/default.asp?id=246</guid>
		<description><![CDATA[　　要说这次的故障，还真是我这个“医生”的不负责+不耐烦造成的，居然让一个从来没装过系统的人去重装一台有病毒的电脑，话说某人第一次重装是成功了，但是一双击“我的电脑”的盘符，又中招了，强行关机，再重装，发现分区信息全部丢失。<br/>　　遇到这种问题我还真是紧张了，毕竟也是因为我装了一次不想再弄了，不过为了保险起见，还是先去了hp的金牌服务那边，结果硬件检测硬盘没问题，只能自己动手了。<br/>　　回来baidu之，发现这种情况原来很普遍，大家都是用DiskMan的重建分区表功能恢复的。于是用U盘启动，实现之，居然瞬间找回所有分区表信息。这玩意儿，要灵的话，所有数据都不会丢失，要不灵，那就等着哭吧。好在这次秒搞定，也算是将功补过了，不过某人说为了感谢我，要请我吃必胜客+看《画皮》，哈哈，可不，外面修复硬盘数据起步价都3、4百呢，看来我也可以考虑做点这个生意，哈哈]]></description>
		</item>
		
			<item>
			<link>http://JiangBo.name/blog/article.asp?id=205</link>
			<title><![CDATA[QString到char*的转换]]></title>
			<author>jb4652@gmail.com(Bob)</author>
			<category><![CDATA[技术相关]]></category>
			<pubDate>Wed,05 Mar 2008 23:47:25 +0800</pubDate>
			<guid>http://JiangBo.name/blog/default.asp?id=205</guid>
		<description><![CDATA[　　本来QT的QString挺好用的，无奈OpenGL Shading Language都是用的char*，特别是glShaderSource()函数，所以要考虑它们之间的转换。<br/>　　直接转换不行，因为QString没有提供直接的成员函数，但是可以通过QByteArray中转一下，例如：<br/>int main(int argc, char **argv)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;QApplication app(argc, argv);<br/>&nbsp;&nbsp;&nbsp;&nbsp;QString str1 = &#34;Test&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;QByteArray ba = str1.toLatin1();<br/>&nbsp;&nbsp;&nbsp;&nbsp;const char *c_str2 = ba.data();<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;str2: %s&#34;, c_str2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;return app.exec();&nbsp;&nbsp;&nbsp;&nbsp;<br/>}<br/><br/>具体的参见如下页面：<br/><a target="_blank" href="http://trolltech.com/developer/knowledgebase/faq.2007-01-30.9032238253" rel="external">How can I convert a QString to char* and vice versa ?</a>]]></description>
		</item>
		
			<item>
			<link>http://JiangBo.name/blog/article.asp?id=194</link>
			<title><![CDATA[对抗病毒的彻底胜利——Backdoor.Win32.Agent病毒删除后桌面无法显示的问题]]></title>
			<author>jb4652@gmail.com(Bob)</author>
			<category><![CDATA[技术相关]]></category>
			<pubDate>Mon,31 Dec 2007 16:51:45 +0800</pubDate>
			<guid>http://JiangBo.name/blog/default.asp?id=194</guid>
		<description><![CDATA[　　太兴奋了，从之前向病毒的妥协到这一次完全胜利，除了我个人的意志力之外（作为CS的SS，坚决不重装系统），小小老鼠（陈伟锋）同学的大力帮忙也是绝对的功不可没。<br/>　　好像我之前写过一篇文章谈到Backdoor.Win32.Agent.abe病毒的手动查杀问题，不过好戏似乎没有结束。在某次安装完最新版卡巴并杀完该病毒之后，重启，桌面（explorer.exe）就启不来了。通过任务管理器手动启动，“开始”菜单也是一闪而过。万般无奈之下，想到了一个下下策，通过“系统还原”还原到安装卡巴之前，而病毒文件也就还原回去了，这样，系统“正常”了，所以之后干脆不装杀毒软件“裸奔”起来……<br/>　　不料前几日，看见校网推广趋势，好了伤疤忘了痛的我又装起趋势来，结果重蹈了卡巴的覆辙，不过这次似乎就没那么“幸运”了，因为之前的C盘空间不到200M，系统还原被XP关了，也就还原不回去了。<br/>　　不过身为CS的SS，接近2年没有重装的系统岂能说格就格。没有桌面，有任务管理器就行。没有资源管理器，就用Total Commander；没有IE，就用FireFox；QQ和迅雷用不了，就远程连接到实验室计算机用；好在其它软件都可以正常工作：）不过想想还是相当的不甘心，放假回家岂不是就用不了了。<br/>　　静下心来想想，如果用无毒的光盘启动杀毒软件，那硬盘的病毒必定遁形。眼瞅着就要去买正版的了（伺机报销，哈哈），结果在网上搜到了“长枫论坛PE杀毒光盘”，基于Win PE的ISO还集成了十几款杀毒软件，立马找小小老鼠刻出来。<br/>　　果然，用这个光盘依旧查出了Backdoor.Win32.Agent病毒，另外还查出了几个其它的，但是杀完后重启还是不行。遂用多款杀毒软件交叉检查，虽然还真的发现了新病毒，不过实质性问题没有解决。<br/>　　下午来实验室，正好老鼠也在，他过来帮我看了下。首先他就想到了注册表，而我之前头晕竟然忽略之……手动删掉几个极其可疑的表项后，还是不行，动用工具：SecAnalyst，刷刷刷列出了好多可疑的东西，包括病毒文件在内的一些文件提示Not Found。不过最让我们摸不着头脑的是有两个文件找不到，一是SVCH0ST.EXE，一是shdocvw32.dll。睁大你的眼睛，前面列的可不是大名鼎鼎的SVCHOST.EXE，0和O在注册表编辑器里几乎一模一样，Copy到记事本里就能看出它们的区别了，应该是字体的问题。现在明显了，这个冒牌的家伙是病毒，并且已经被解决了。但是shdocvw32.dll可是正牌的系统文件啊，上网一搜，找到一篇文章：<a target="_blank" href="http://blog.chinaunix.net/u/166/showart.php?id=406304" rel="external">shdocvw32.dll病毒删除后桌面无法显示的问题</a>，和我的症状一样。原来我之前一直没有搜索到关键点，而且Backdoor.Win32.Agent.aqh的最后三个字母是不固定的，同时病毒dll的文件名也是不固定的，按照它的方法，结果，久违的桌面终于出来了，我热泪盈眶啊 <img src="http://JiangBo.name/blog/images/smilies/Face_11.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/><br/>　　总结：最让我高兴的莫过于避免了重装系统的厄运，一大堆大型软件加上各种个性设置的东西，全部重来工作量实在太大，而且最近太忙了；其次，病毒再高明，也是要有寄生的环境，不启动系统，病毒也就无从发作，杀起来也就易如反掌了；第三，我也不打算再装杀毒软件了，定时用光盘杀毒效果很好：）]]></description>
		</item>
		
			<item>
			<link>http://JiangBo.name/blog/article.asp?id=189</link>
			<title><![CDATA[Ubuntu7.10+ATI Mobility RADEON 9000成功实现Linux3D桌面]]></title>
			<author>jb4652@gmail.com(Bob)</author>
			<category><![CDATA[技术相关]]></category>
			<pubDate>Sun,09 Dec 2007 04:28:27 +0800</pubDate>
			<guid>http://JiangBo.name/blog/default.asp?id=189</guid>
		<description><![CDATA[<img src="http://JiangBo.name/blog/attachments/month_0712/l20071295230.JPG" border="0" alt=""/><br/>　　现在是北京时间2007.12.09的凌晨4：11分，我很兴奋地写下这篇blog，因为经过前几日的尝试和今天长达6个多小时的奋战，终于在本本的ATI Mobility RADEON 9000老显卡上成功跑起了Linux的3D桌面，而且速度相当快：）<br/>　　OS的报告，我几乎是毫不犹豫地想到了桌面系统相关的题目，谁让我们搞图形的呢，而3D桌面又是比较新鲜的东西。为了讲这个topic，不在自己的电脑上装起来似乎说不过去。但是ATI官方都只提供高于9600的移动版芯片的Linux驱动，虽然外国论坛的帖子说9000跑3D桌面没问题，虽然有开源的驱动支持9000，但是心里还是没底。<br/>　　之前因为RoboCup而装了SuSE10.0，但在这个平台上的努力一直没有成功，包括OpenSuSE官网也不推荐这样做。不过后来听说最新的Ubuntu7.10集成了Compiz，思来想去，还是把最爱的SuSE给格了，改投Ununtu，甚至从我最爱的KDE改投了Gnome……<br/>　　前几天一直为找不到显卡驱动而烦恼，殊不知系统已经自带了，只是因为我乱调才出了问题，现在已经OK了。又因为用惯了SuSE的Yast，而对apt-get一窍不通，导致大半夜的被安装源问题忽悠了不少时间，现在终于明白原来改了安装源还要sudo apt-get up&#100;ate一下，唉……<br/>　　现在想了想，整理了一下思路，发觉要实现3D桌面一点也不困难：装好Ubuntu7.10后，安装xgl。然后首先尝试在菜单“系统&gt;参数选择&gt;外观控制面板”下调整“效果”到其它档次，如果没有问题，证明你的显卡已经完全OK了，如果提示失败，就需要去安装正确的显卡驱动。此时，拖动窗口已经能看到明显的扭曲效果了，只是各大网站秀的立方体效果还没出来，这是因为系统自带的特效管理器太弱了，可以安装“compizconfig-settings-manager”来解决。奇怪的是我装这个可以，但点击后没反应，汗，幸好在“新得力软件包管理器”（奇怪为什么叫这个名字）里找到另一个“gnome-compiz-manager”（也就是GL Desktop），于是就轻松实现了cube效果（立方体效果，见标题图，不过不是我截的，是在网上找的）。现在看来14号的课堂演示是没问题了，接下来就是读paper，然后用OpenOffice做slides（PPT），哈哈，是不是很酷啊：）<br/>　　<span style="color:Red">12.09更新：</span>装上了compizconfig-settings-manager，但是点击Advanced Desktop Effects Settings却没有反应很不爽，今天在Baidu上搜了一下，有个人说：“遇到这种情况就重装一下系统，可能是软件没装全，我也不知道是什么原因，大家不要拿砖头丢我啊”。虽然我不苟同它没装全的说法，不过觉得之前确实有点乱，还是决定重装。进入桌面的第一件事情就是up&#100;ate，然后立刻装compizconfig-settings-manager，并且没装xgl，结果怎么着，出来了，唉，Linux果真是不好对付的家伙……]]></description>
		</item>
		
			<item>
			<link>http://JiangBo.name/blog/article.asp?id=157</link>
			<title><![CDATA[OpenGL中纹理颜色显示错误一例]]></title>
			<author>jb4652@gmail.com(Bob)</author>
			<category><![CDATA[技术相关]]></category>
			<pubDate>Sun,19 Aug 2007 16:24:49 +0800</pubDate>
			<guid>http://JiangBo.name/blog/default.asp?id=157</guid>
		<description><![CDATA[　　好像自从第一次成功贴上图到模型，图片颜色就一直不对，只是因为这个目前不急于解决，也就没有管了。今天尝试制作天空盒（SkyBox），蓝天白云到我的程序里居然弄得跟晚霞一样，实在是受不了了。<br/>　　怀疑是FreeImage的问题，也怀疑是光照和材质设定的问题，但是很快我排除了后者，正打算在网上找临时的方法替代FreeImage来测试前者的时候，无意搜到一篇帖子：<a target="_blank" href="http://blog.csdn.net/skyman_2001/archive/2006/05/28/759305.aspx" rel="external">“OpenGL中不用AUX库来加载BMP图片作为纹理”</a>，其中一句话猛然提醒了我：“这是因为后面的GL_BGR_EXT是定义在这个头文件里的，因为BMP格式是按Blue,Green,Red顺序储存图像数据的，这与OpenGL中正好相反。GL_BGR_EXT就是完成两者之间的转换的”。看来图片的样子正确，唯独颜色不对很有可能就是这个原因，于是把glTexImage2D()函数中的第7个参数从GL_RGB改成GL_BGR_EXT，再次编译，问题得到圆满解决 <img src="http://JiangBo.name/blog/images/smilies/Face_02.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://JiangBo.name/blog/article.asp?id=156</link>
			<title><![CDATA[在OpenGL中固定光源的位置]]></title>
			<author>jb4652@gmail.com(Bob)</author>
			<category><![CDATA[技术相关]]></category>
			<pubDate>Sat,18 Aug 2007 23:10:55 +0800</pubDate>
			<guid>http://JiangBo.name/blog/default.asp?id=156</guid>
		<description><![CDATA[　　一直觉得程序里的光照有问题，也怀疑过光源是不是不固定，今天逛Gameres无意中看到一个帖子也在问这个事，从其中一个解答：<a target="_blank" href="http://www.azure.com.cn/article.asp?id=103" rel="external">“OGL中一个光照问题, 光源固定.”</a>中找到了答案。<br/>　　光源的位置会根据当前的模型视图矩阵进行变换，换言之，通过修改模型视图矩阵可以操纵光源的位置。因此，光源的位置如果只是在init中设定，那么随着观察方向的改变，光源的位置也在改变，你看到的永远是亮的或暗的，所以一定要在每次渲染时指定光源位置。<br/>]]></description>
		</item>
		
</channel>
</rss>
