分类目录归档:编程

MCMod教程开始恢复更新

MC1.9马上就要发布了,按照"总是差一个版本"的惯例(这是哪的惯例啊),教程准备从1.7更新到1.8了 ? 刚才看了眼第一篇教程,文中介绍的Eclipse居然还是4.3...现在第一篇教程已经更新了,最近那么多人抱怨没法配置开发环境,现在看来一点也不奇怪(捂脸,那篇实在太陈旧了).

想看看当初给MC1.2写ModLoader教程时的原始手稿,结果发现找不到了...这种东西还真能丢啊. 阅读全文 [...]

FGOW1.2.1和FMMv4

Forge在更新到1.8.8之后FGOW1.2.0就不能用了,于是自然而然地就有了FGOW1.2.1,新版本在功能上没有变化,只是支持了使用ForgeGradle2.1的Forge1.8.8和1.8.9.

下载地址:
SkyDrive:http://1drv.ms/21gcxy5
Dropbox:https://www.dropbox.com/s/ekig3gjx32uz3qp/fgow-1.2.1.jar?dl=0
百度网盘:http://pan.baidu.com/s/1geoIkin


此外,ForgeMavenMirror,也就是我们喜闻乐见的ForgeMaven仓库镜像,也更新到v4版本了.
更新内容包括:

  • 缓存了2.0、2.5和2.7的gradle文件,下载地址为"http://forgemavenmirror.sinaapp.com/gradle/gradle-[版本号]-bin.zip",启用它们的方式是修改Forge(其实现在应该叫MDK了)目录下的gradle/wrapper/gradle-wrapper.properties文件,将"distributionUrl="后面的下载地址改为镜像的地址.我之前没有弄这个是因为我不赞同这样做,Gradle的文件策略相当有问题,它是根据下载地址的Hash来识别版本的,这意味着不同下载地址的同一版本Gradle(甚至是同一个地址的https和http下载链接)会被识别为不同文件,你知道我的机器上已经有4个版本的Gradle-2.7-bin了吗?也许他们认为多版本并存很有意义,但我觉得仅凭下载地址来区分的多版本除了虐待硬盘以外毫无意义.不过现在考虑到Gradle已经成了GFW的重点关照对象之一,https链接几乎已经连不通了,这里还是提供了Gradle的缓存.
  • 增加了大量缓存,现在FMM已经可以代替所有的仓库了!对,你可以删掉除FMM以外的所有仓库,经过实测1.8.9可以在只有FMM仓库和本地Forge缓存目录的情况下配置.
  • 智能重定向,过去FMM在失败时只会重定向到Forge的仓库(files.minecraft.net),现在FMM会重定向到"最有可能"的仓库,此外,由于Oschina的Maven镜像复活了,对于Maven中央仓库的资源会重定向到Oschina的镜像.
  • 可选的快速失败,如果你不想要重定向功能的话,可以使用"http://forgemavenmirror.sinaapp.com/mavenff"这个仓库,它会在没找到缓存的情况下直接返回404,而不是重定向,这对于想要继续混合使用其他仓库的人来说很有用.
  • maven-metadata.xml缓存会在每天(北京时间凌晨1点)更新一次.因此,现在快照版本(Snapshot)又会被缓存了(之前由于maven-metadata.xml不会自动更新的问题,一度取消了快照版本的缓存).
  • 一些细微的优化.
阅读全文 [...]

FGOW 1.1.0

更新内容:
新的配置方式
增强了源替换能力,现在Minecraft、MCP和Forge的Json版本文件都能被替换了,同时增加了assest下载地址的替换.
修正了一个关于构建经典开发目录的Bug,这个Bug会导致源代码和资源文件无法被正确地复制到工作环境中.


具体内容见http://www.hakugyokurou.net/wordpress/?page_id=1337 阅读全文 [...]

Asm♂Event♂Bus

好吧,标题是逗闷子的,这个项目的名字确实是AsmEventBus,但我总是忍不住在里面插入'♂'.

上一篇日志提到正在做一个Java库(如果你真的以为上一篇日志仅仅是追悼我挂掉的高数的话...就点它的"继续阅读"吧),其中提到"一个基于类生成的事件总线系统",在写完日志后不久,我决定把事件总线系统从库中分离出来,单独作为一个项目. 阅读全文 [...]

[3D图形学]视锥剔除入门(翻译)

最近在学3D图形学...看到篇不错的视锥剔除入门教程,于是搬来翻译了...

时至今日,许多刚刚下海的3D引擎程序员仍不了解视锥剔除(Frustum Culling)的重要性和益处,这让我和我的小伙伴们感到很震♂惊.我在Flipcode论坛中发现尽管网络上有海量的相关资料,仍有许多人提出对视锥剔除实现的问题.因此我决定撰写这篇文档,简单描绘出我现在所使用的四叉树剔除引擎(Quad-tree Culled Engine)的工作方式.诚然,市面上有许多种成熟且高效的视锥剔除算法,但我认为这个算法足以用来学习视锥剔除的理论基础.在正式开始前我还想说明一件事,以前我一直把Frustum(平截头体)打成Frustrum(截头锥),为此我没少被论坛上的人喷.在这里我承认Frustum是正确的拼写.对那些以前被我冒犯的人我表示抱歉...你们这群吹毛求疵的傻[哔-]...

大多数人已经知道什么是视锥剔除了(译者:如果你是手滑误点进来的...视锥剔除是一个图形渲染前的步骤,用于剔除掉不需要绘制的部分).视锥(准确说是平截头体Frustum)的形状酷似一个塔尖被削平了的金字塔,更准确地说,是一个四棱锥的顶点偏下位置被一个裁面(Clipping Plane,见图1)裁断.事实上,视锥本身就是由6个面所组成.这6个面被称为近裁面,远裁面,上裁面,下裁面,左裁面,右裁面.视锥剪裁仅仅是一个用来判断物体是否需要被绘制的过程.尽管从本质上讲视锥剔除应该是三维层面的,但事实上大多数时候它仅仅需要以纯代数的方法便能解决.这也是为什么我如此推崇视锥剔除的原因,它非常的快(如果算法好的话),而且是在渲染管线(Rendering Pipeline)之前进行的,不像背面剔除(Backface Culling)那样需要在渲染管线之后一个顶点一个顶点地计算.对于被剪裁掉的物体都不会将其送入显卡(译者:那是...被剔除掉的压根都不用渲染),因此视锥剔除对渲染速度有巨大的改善,毕竟什么都不渲染是最快的渲染... 阅读全文 [...]