发现Zotero真是好用!尤其是对像ScienceDirect这样提供网页全文的网站,可以在保存文献信息的同时保存下网页快照,然后用Zotero自带的注释和高亮功能写下阅读时的感想,真是太方便了!值得注意的是在网页的左半边是文章内容,右半边是留白,正好可以加上注释,比在pdf中加入注释还要方便~
中文的网站这方面就欠缺不少!以CNKI为例(现在只有支持CNKI的转换器),没有网络全文不说,一段时间不用还要自动注销,显得很是小气。尤其是在暂时没解决translator自动下载pdf全文的情况下,没有网络全文就显得特别不方便了!
另外,Zotero中的便签也很好用,我常用便签来记录对整篇文章的读后感,或者记录下这篇文章的用处等与文章内容关系不大的东西,方便以后再看时可以迅速上手~
2008年10月22日星期三
2008年10月19日星期日
2008年10月10日星期五
工作重心转移
前一阵在看三维编程方面的东西,找到了Python+Pygame+Panda3D的组合,学了一点Blender,搞懂了egg文件的格式,正要放开手脚大干一场的时候,反省了一下当前的形势,发现工作重心该转移了!
这些东西应该放在下一个月来做,当前的主要任务是完成JTSS,这是三维编程的基础~
今天已经10号了,这两天就要赶紧完成它,不然这个月来不及写东西了。花了两天的时间重构了车辆与道路之间的通讯方式,简化了很多,真正感觉到了Simple is Beauty!
今天的任务是写更多的模糊推理规则,参数先自己看着定吧,调整就是下一步要做的工作了~
我自己的svn服务器
有个自己的svn服务器感觉真是不错~哈哈
但是有时候没有网络,不能说就不做事吧~所以日常的工作还是放在我的SD卡上的svn中,每隔一段时间(如一周),就把东西再commit到网络服务器上。
这样有一点不方便的就是要在机器上保存两份工作拷贝,一份对应SD的svn,一份对应服务器上的svn,commit到服务器前从SD的工作拷贝把文件拷贝到服务器的工作拷贝里,还好svn能自动识别有修改的文件,用红色图标标记出来,不过这样也要多保存一份拷贝了。只有用多一份拷贝多一份安全来安慰自己了~
2008年10月7日星期二
能自动生成三维模型吗?
今天在看Blender的视频和文字教程,发现有个问题。Blender里要精确的控制模型的大小有点麻烦,尤其是象我所需要的根据不同的交通场景进行建模时,不同的场景如果每次都从头来做的话那是相当的麻烦!能不能找到一个更方便的手段,根据给定的地图来进行建模呢?要知道车辆模型是可以与场景模型分开的,不同的场景可以利用相同的几种车辆模型,而场景需要根据地图的不同,分别进行建模,而且最重要的是要与地图中的完全一致,道路的长度、宽度,车道的变化,交通灯的布局,各种交通设施的放置等等。交通设施还好办,根据地图中的指示放在那里就行了,关键是道路的布置,这是要求最高,并且最麻烦的一类。
我现在的想法是能不能解析地图中的信息,然后自动生成道路的egg文件,然后用blender导入,在里面再添加其他的交通设施,加以润色,最后导出为egg文件,供panda3d使用。这就要求我熟悉egg文件的格式,尤其是plate这一块的东西,可以现在blender里做一个出来,然后导出为egg文件,然后仔细研究一下~
那么其他blender的高级功能就不用再花时间看了,只要会modeling,UVmapping就差不多了,主要的精力放在自动生成道路和放置已有的交通设施在道路边上。具体说来,下面的任务就有如下几个:
我现在的想法是能不能解析地图中的信息,然后自动生成道路的egg文件,然后用blender导入,在里面再添加其他的交通设施,加以润色,最后导出为egg文件,供panda3d使用。这就要求我熟悉egg文件的格式,尤其是plate这一块的东西,可以现在blender里做一个出来,然后导出为egg文件,然后仔细研究一下~
那么其他blender的高级功能就不用再花时间看了,只要会modeling,UVmapping就差不多了,主要的精力放在自动生成道路和放置已有的交通设施在道路边上。具体说来,下面的任务就有如下几个:
- 学会从blender中导入导出egg文件;
- 学会在blender中构建道路模型;
- 了解egg文件的格式;
- 解析地图文件,构建egg文件中的道路模型信息;
- 在blender中导入包含道路模型的egg文件,添加其他交通设施;
- 导出为egg文件,在Panda3D中查看(用pview)。
2008年10月6日星期一
三维模型转换的一点心得
昨天晚上尝试将用wings3d构建的模型转换到Panda3D的egg格式,中间遇到一些小问题,其中一个到今早才解决,记录在这里,备忘。
正如我在上一篇blog里所说的,x文件是目前Panda3D支持最好的格式,先用wings3d将模型导出为x格式文件,然后用x2egg file.x file.egg将x格式文件转为egg格式,很简单,至少看起来是这样。模型的大小对速度影响很大,简单的模型在导出和转换步骤都很快,复杂的模型在两个环节都会很慢,甚至出现内存不足的错误!这个其实是可以解决的,我后面再讲,先说说x文件转换为egg文件常会遇到的问题。
最常见的两个问题是大小写和非法字符。导出的x文件中一般都有图片文件的路径,图片文件名一般都是大写的,而x2egg命令好像是大小写敏感的,而实际的文件名一般都是小写的,因此会出现找不到指定文件的错误。解决方法很简单,用文本编辑器打开x文件,找到图片文件名(一般在开头部分),修改为小写即可。非法字符主要是x文件中的frame或者material中的命名有时候会出现“()”等字符,甚至是乱码。乱码就要手动一个个找出来,随便改个名字就行,其他的非法字符用查找替换去掉就行。需要注意的是,有时候x文件很大,好几M,有的文本编辑器(如PSPad)打开速度会很慢,有的打开速度很快(如记事本),但保存时会写入其他东西(BOM),也不敢用,最后还是用Ulipad比较靠谱,当然也可以用其他的,不过我机子上目前就这几个了~
再来说说内存不足的问题。其实一般的电脑上都不会出现这个问题的,因为有虚拟内存嘛~我恰好昨天装了一个TrueCrypt,它在安装时禁用了虚拟内存,我当时没在意。后来转换大一点的x文件时老是抱怨内存不足,我查看了一下,x2egg果然很耗内存,当时以为无解了,心想图形图像处理果然是耗内存啊!今早突然想到可能是禁用了虚拟内存的问题,马上恢复过来,再一试,果然就可以了~
还有一个问题没解决,有一个模型转换没问题,但在用pview查看egg文件时出错。暂时不管它了,其实那些复杂的模型虽然我也转换了,但鉴于导入后太占内存,以后使用的机会也不多,更多的是使用那些简单的模型,毕竟我对模型的细节要求不高~
另外,发现用egg2bam将egg文件转为二进制的bam文件导入速度果然提高了,但是之后再用pview查看egg文件导入速度也很快,怀疑是不是pview会自动将查看过的egg文件缓存,抑或是自动先找有没有相同文件名的bam文件?
下面的任务就是自己写程序构建一个简单的三维场景,放入车辆,运动起来。还是那句话,程序不复杂,难点还是在三维场景的建模上~加油吧!
正如我在上一篇blog里所说的,x文件是目前Panda3D支持最好的格式,先用wings3d将模型导出为x格式文件,然后用x2egg file.x file.egg将x格式文件转为egg格式,很简单,至少看起来是这样。模型的大小对速度影响很大,简单的模型在导出和转换步骤都很快,复杂的模型在两个环节都会很慢,甚至出现内存不足的错误!这个其实是可以解决的,我后面再讲,先说说x文件转换为egg文件常会遇到的问题。
最常见的两个问题是大小写和非法字符。导出的x文件中一般都有图片文件的路径,图片文件名一般都是大写的,而x2egg命令好像是大小写敏感的,而实际的文件名一般都是小写的,因此会出现找不到指定文件的错误。解决方法很简单,用文本编辑器打开x文件,找到图片文件名(一般在开头部分),修改为小写即可。非法字符主要是x文件中的frame或者material中的命名有时候会出现“()”等字符,甚至是乱码。乱码就要手动一个个找出来,随便改个名字就行,其他的非法字符用查找替换去掉就行。需要注意的是,有时候x文件很大,好几M,有的文本编辑器(如PSPad)打开速度会很慢,有的打开速度很快(如记事本),但保存时会写入其他东西(BOM),也不敢用,最后还是用Ulipad比较靠谱,当然也可以用其他的,不过我机子上目前就这几个了~
再来说说内存不足的问题。其实一般的电脑上都不会出现这个问题的,因为有虚拟内存嘛~我恰好昨天装了一个TrueCrypt,它在安装时禁用了虚拟内存,我当时没在意。后来转换大一点的x文件时老是抱怨内存不足,我查看了一下,x2egg果然很耗内存,当时以为无解了,心想图形图像处理果然是耗内存啊!今早突然想到可能是禁用了虚拟内存的问题,马上恢复过来,再一试,果然就可以了~
还有一个问题没解决,有一个模型转换没问题,但在用pview查看egg文件时出错。暂时不管它了,其实那些复杂的模型虽然我也转换了,但鉴于导入后太占内存,以后使用的机会也不多,更多的是使用那些简单的模型,毕竟我对模型的细节要求不高~
另外,发现用egg2bam将egg文件转为二进制的bam文件导入速度果然提高了,但是之后再用pview查看egg文件导入速度也很快,怀疑是不是pview会自动将查看过的egg文件缓存,抑或是自动先找有没有相同文件名的bam文件?
下面的任务就是自己写程序构建一个简单的三维场景,放入车辆,运动起来。还是那句话,程序不复杂,难点还是在三维场景的建模上~加油吧!
2008年10月5日星期日
panda3d是个好东西
从Java3d开始,对场景图(Scene Graph)就一直抱有好感,对直接操作OpenGL深恶痛绝!也正是因为这个原因,虽然python+pygame对于二维的操作非常好,但三维却是直接操作OpenGL,使得我一度倾向于使用java+xith3d,尽管与Python相比,Java让我看着就神经衰弱~
还好发现了Panda3D!它支持python和C++,使用场景图来放置对象,底层功能是用C++写的,但是程序的编写却是鼓励用python,几乎所有的文档和例子都是针对python的。python+pygame+panda3d,简直就是绝配啊~~
好像是从前天开始开始看panda3d的manual,因为有个中文翻译的版本,虽然和最新的手册有些出入,但大致该说的都讲到了,其他一些高级的特性我也用不到,再看了看例子,现在有点感觉了。场景图的概念和Java3d、Xith3D里的差不多,简单易学,我感觉以后这就是3D程序的趋势了。操纵3D对象也很简单,另外还支持动画,这个很有意思,以前我没有关心过,这次看了例子,发现很简单,只要是egg模型文件里有动画就行,都不用编程实现~整个流程就是先建立一个World对象(从DirectObject继承,这样才能响应事件),在__init__函数里导入模型,添加到render上,设置好键盘、鼠标处理函数,用OnscreenText在屏幕上写上提示,再多就是添加几个actor(动画模型)和interval(动画播放),添加几个在每一帧都要调用的task函数,然后建立一个World的实例,调用run函数就OK啦~
当然如果要和pygame联合使用,就要处理Pygame里的鼠标、键盘、游戏手柄等检测事件,这也不难,建立一个task来检查就是了~
所以今天中午感觉使用Panda3D一个关键的环节就是建立3D模型!我以前用wings3d建立的模型如何转换到Panda3D所支持的文件格式是今天主要研究的问题。研究的结果是目前Panda3D对于非egg文件支持最好的就是x文件(DirectX文件),而我用的wings3d可以直接导出为x文件!看上去没什么问题了,不过在完成转换工作并进行测试之前,我仅能持谨慎乐观的态度。今晚的任务就是转换已有的3D模型,并进行测试。
还好发现了Panda3D!它支持python和C++,使用场景图来放置对象,底层功能是用C++写的,但是程序的编写却是鼓励用python,几乎所有的文档和例子都是针对python的。python+pygame+panda3d,简直就是绝配啊~~
好像是从前天开始开始看panda3d的manual,因为有个中文翻译的版本,虽然和最新的手册有些出入,但大致该说的都讲到了,其他一些高级的特性我也用不到,再看了看例子,现在有点感觉了。场景图的概念和Java3d、Xith3D里的差不多,简单易学,我感觉以后这就是3D程序的趋势了。操纵3D对象也很简单,另外还支持动画,这个很有意思,以前我没有关心过,这次看了例子,发现很简单,只要是egg模型文件里有动画就行,都不用编程实现~整个流程就是先建立一个World对象(从DirectObject继承,这样才能响应事件),在__init__函数里导入模型,添加到render上,设置好键盘、鼠标处理函数,用OnscreenText在屏幕上写上提示,再多就是添加几个actor(动画模型)和interval(动画播放),添加几个在每一帧都要调用的task函数,然后建立一个World的实例,调用run函数就OK啦~
当然如果要和pygame联合使用,就要处理Pygame里的鼠标、键盘、游戏手柄等检测事件,这也不难,建立一个task来检查就是了~
所以今天中午感觉使用Panda3D一个关键的环节就是建立3D模型!我以前用wings3d建立的模型如何转换到Panda3D所支持的文件格式是今天主要研究的问题。研究的结果是目前Panda3D对于非egg文件支持最好的就是x文件(DirectX文件),而我用的wings3d可以直接导出为x文件!看上去没什么问题了,不过在完成转换工作并进行测试之前,我仅能持谨慎乐观的态度。今晚的任务就是转换已有的3D模型,并进行测试。
订阅:
博文 (Atom)