摘要: 事实上,对于搞定了PIXAR的2006年发布的一个小小的毛发流程,我一点都不觉得有什么丢人之处。微积分是几百年前的东西,量子力学是一百年前的东西,Level Set是将近三十年前的东西,我们都是站在巨人的肩上才能向前卖出一小步的。In fact, I did not feel there is something disgrace that I duplicated this little hair workflow. The integral was invented several hundreds years ago, the Quantum physics owned about one hundred years history, the Level Set was published since thirty years ago. We are all standing on the should of giant in order to get a small step forward.  阅读全文
posted @ 2009-06-18 19:54 Bo Schwarzstein 阅读(1063) | 评论 (3)编辑

In boost 1.39.0, the version of thread library is still 1.38.0, so the generated libraries was suffix by “1_38”. But in CGAL’s “FindBoost.cmake”, it will try to find the library with current version of boost, e.g, “1_39”, so it will not find the boost_thread component, error occured. You could manual modify the suffix from “1_39” to “1_38”, or use the older boost.

posted @ 2009-06-14 12:06 Bo Schwarzstein 阅读(99) | 评论 (0)编辑
     摘要: k Nearest Neighbor是重要的空间点集搜索应用,在空间函数差值与群集中有重要的应用。实践证明使用NVIDIA CUDA可以大幅度的加速搜索过程,在GPU上实现快速的搜索与排序。  阅读全文
posted @ 2009-06-07 11:14 Bo Schwarzstein 阅读(1549) | 评论 (8)编辑
     摘要: ASUS P5QL active Vista x64  阅读全文
posted @ 2009-06-01 21:59 Bo Schwarzstein 阅读(197) | 评论 (0)编辑

做这个小程序最初的动机是,为了解决Blobby生成的空间函数系统不连续的问题。详细的推导过程可以结合Lipschitz条件进行。根据推测,AfterBurn应该是没有解决这个问题,当局部地区粒子数目很低的时候。这个问题还可以归结为是CurvatureFlow的问题,在这里就不多说了。假设我们需要散射2D空间内的一个标量场,那么非常直接的就是用数值法求解PDE(ODE),无论是Forward Euler还是RK等等都可以做。下面是散射一个标量场计算的结果,dt = 0.001,

HeatCond

测试表明这种需要大量迭代的计算过程可以方便的映射到GPU上去进行计算,由于显存带宽要比系统总线带宽大的多,所以复制状态就会非常的高效率。经过散射后的场将逐渐的填补不连续的地方,当然当迭代次数大到一定程度后就没什么意义了,所以迭代次数是由制作人员控制的,我就没必要插手了。这里是CUDA的核心代码和部分执行代码,其实就是一个简单的中心差分与前向欧拉法罢了。

texture<float2, cudaReadModeElementType> Tex2DRef;

__global__ 
void HeatCond2D(float* Data, unsigned int Width, unsigned int Height)
{
    
int BlockSize = blockDim.x*blockDim.y;
    
int GridOffset = blockIdx.x*BlockSize;
    
int Idx = ( threadIdx.y*blockDim.x + threadIdx.x ) + GridOffset;

    
//float2 ST = make_float2( float()+0.5, float()+0.5 );
    float X = Idx % Width;
    
float Y = ( Idx - X ) / Width;

    
//Four corners
    float2 CoordC = make_float2(X+0.5, Y+0.5);

    
float C = tex2D( Tex2DRef, CoordC.x, CoordC.y );
    
float L = tex2D( Tex2DRef, CoordC.x - 1.0, CoordC.y );
    
float R = tex2D( Tex2DRef, CoordC.x + 1.0, CoordC.y );
    
float U = tex2D( Tex2DRef, CoordC.x, CoordC.y + 1.0 );
    
float D = tex2D( Tex2DRef, CoordC.x, CoordC.y - 1.0 );
    
    
float Laplacian = -4.0*+ L + R + U + D;

    Data[Idx] 
= C + Laplacian*0.01;
}

 

posted @ 2009-05-19 23:54 Bo Schwarzstein 阅读(200) | 评论 (0)编辑

采用CCD摄像与图像处理技术求解铣削MDF切屑流边界及扩散角
A Research on Chip Flow Boundary of MDF milling based on CCD Camera and Digital Image Processing Methods

DOWNLOAD

posted @ 2009-05-18 11:37 Bo Schwarzstein 阅读(285) | 评论 (0)编辑

我们的艺术家希望能够直接通过控制粒子的方式就获得近乎流体的效果。3dsmax的插件AfterBurn就是做这个的,可惜在Maya下仿佛没有足够好的类似插件,于是他们要求我做一个。类似于Digital Domain为了《绝密飞行》中的空中云团的那个效果,而DD用的是自己的Voxel Bee-itch。曾经尝试了RBF插值,LSS插值,最后还是用了metaball。

Our artist would like to get the fluid effect by controlling the particle system. The AfterBurn for 3dsmax could finish this task very well, but as I know there is no a similar one in Maya, they asked me whether I could fork another one. We want to make some VFX just like the cloud in "Stealth" from Digital Domain, they use their in-house particle tool named "Voxel Bee-itch". I have tried to interpolate particles by RBF, LSS, finally I decided to use metaball.


 

 

posted @ 2009-04-23 11:58 Bo Schwarzstein 阅读(427) | 评论 (4)编辑
     摘要:   阅读全文
posted @ 2009-04-21 18:09 Bo Schwarzstein 阅读(128) | 评论 (0)编辑

如题,还有三门课程要清考,人造板质量监测,木材工程生产自动化,外加个社会主义经济学,各个都是要背的,各个都是头疼的玩意。在这里提前向各位打个招呼,如果有什么地方缺人的我就愿意去了,我再也受不了现在这个样子了。

posted @ 2009-04-07 16:47 Bo Schwarzstein 阅读(444) | 评论 (7)编辑
     摘要:   阅读全文
posted @ 2009-04-06 19:17 Bo Schwarzstein 阅读(227) | 评论 (1)编辑