对 Quadrilateral Interpolation, Part 1 的证明

最近在模拟2D像素阴影时,遇到了一个问题,对于任意形状的凸四边形,要如何计算其UV才能让最终的效果看起来正常?(想知道不正常的效果是什么样子?您也可以在下文中的连接中找到对应的图片。)

一番搜索之下,找到了如下链接:
https://www.reedbeta.com/blog/quadrilateral-interpolation-part-1/

这里作者提供了一个通用的公式用于计算UV值,但是作者并没有解释这个公式是如何得来的。本文将试着证明该公式。

Read More

利用.NET下的async/await机制来简化回调和状态机的实现

在开发GUI程序或者游戏的过程中,我想各位可能都写过如下的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void DoSomething() 
{
...blabla
ShowDialogA(onDialogClosed: DoSomethingStep2);
}

void DoSomethingStep2()
{
...blabla
if(some condition)
ShowDialogB(onDialogClosed: DoSomethingStep3);
}

void DoSomethingStep3()
{
...
}

稍微……有些啰嗦,对吧?

那么,有什么办法来解决这个问题呢?有,那就是async/await。

Read More

mRuby的虚拟机与中间码结构

如果你学过编译原理的话,那你大概知道对于一个编译型语言而言,把代码从文本变成二进制代码所需要经历的步骤大概如下:

词法分析->语法分析->生成抽象语法树->生成中间语言->生成最终的机器语言代码

然而,对于一个解释型的语言,这个过程会停留在哪一步呢?换句话说,对于解释型的语言来说,它会将代码分解到何种程度后再去翻译并执行它呢?

Read More