T.G.Jay's profileJay in Tiny GlobePhotosBlogListsMore ![]() | Help |
|
8/13/2006 "Set out for Lover" Finished7/6/2006 mel实现中键拖拽global proc tgDragWindow() {
if(`window -q -exists "tgDragWindow"`) deleteUI "tgDragWindow";
window "tgDragWindow";
columnLayout;
textScrollList -allowAutomaticSelection 1 -dgc ("nameOfAppend") -numberOfRows 2 -append "drag1" -append "drag2" -sc ("print \"aaa\""); textScrollList -allowAutomaticSelection 1 -dpc ("addItem") -numberOfRows 10 -append ""; showWindow "tgDragWindow";
}
global proc string[] nameOfAppend(string $dragControl,int $dragPositionX,int $dragPositionY,int $aidKey) { if ($dragPositionY<13) textScrollList -e -selectIndexedItem 1 $dragControl;
else if ($dragPositionY>13) textScrollList -e -selectIndexedItem 2 $dragControl; string $nameOfAppend_Output[] = `textScrollList -q -selectItem $dragControl`; print (">>>>>>>>>>>>>>>>>>>>>\n"); print ("$dragControl = " + $dragControl + "\n"); print ("$dragPositionX = " + $dragPositionX+ " pixel from the left of tgDragWindow\n"); print ("$dragPositionY = " + $dragPositionY+ " pixel from the top of tgDragWindow\n"); switch ($aidKey) { case 0: print ("$aidKey = NONE\n"); break; case 1: print ("$aidKey = Shift\n"); break; case 2: print ("$aidKey = CTRL\n"); break; case 3: print ("$aidKey = CTRL + Shift\n"); break; } print ("OUTPUT = " + $nameOfAppend_Output[0] + "\n>>>>>>>>>>>>>>>>>>>>>\n"); return {$nameOfAppend_Output[0]};
}
global proc addItem(string $dragControl,string $dropControl,string $nameOfAppend[],int $dropPositionX,int $dropPositionY,int $actionType) { print ("$dragControl = " + $dragControl + "\n");
print ("$dropControl = " + $dropControl+ "\n"); print ("$nameOfAppend = " + $nameOfAppend[0] + "\n"); print ("$dropPositionX = " + $dropPositionX + " pixel from the left of tgDragWindow\n"); print ("$dropPositionY = " + $dropPositionY + " pixel from the top of tgDragWindow\n"); switch ($actionType) { case 1: print ("$actionType = Move\n"); break; case 2: print ("$actionType = Copy\n"); break; case 3: print ("$actionType = Link\n"); break; } textScrollList -e -append $nameOfAppend[0] $dropControl;
} 6/18/2006 BRDF Shader很偶然的机会在CGWorld看到了BRDF(双向反射率分布函数)的光照模型,
写在很小的一个角落里面,很简略得介绍了BRDF, BRDF在形式上表现为三个角度得三维函数,既: 照明方向与法线方向所成的角度; 视角方向与法线方向所成的角度; 与法线垂直的平面上的照明方向与视角方向之间所乘的角度; 但是这个三维函数不是简单的数学公式, 而是需要用科学试验获得的经验公式(插值复原), 我在maya中模拟的只是最简单最基本的BRDF模型, 而且用多项三角函数代替了经验公式,效果如下。 BRDF最经典的应用是布料。 由于布料表面由许多精细的小结构(次微观结构)构成, 所以它的反光特性就显得很复杂。 BRDF试图通过一个宏观的光照模型来改概括些小结构的视觉效果。 双向反射率分布函数的数学定义就是在一定条件下(好比一定的视角), 反射光强和入射光强的比值。 BRDF大部分时候都能体现各向异性, 并且高光和非高光部分都能随着视角的变化而变化。 (ps.只是高光随着视角变化,blinn就能做到) 并且,BRDF的系数是一个经验系数。 eg.Maya中有一个表面朝向率, 其实就是表面法线(Normal Camera)和视角(Ray Direction)夹角A的余弦值cosA 如果把这个值赋给材质的自发光属性,那么可以这么描述: incandescenceR = incandescenceG = incandescenceB = cosA 我所做到的也只停留在这一步。 但是BRDF是一个经验函数,它应该表示为: incandescenceR = incandescenceG = incandescenceB = K·cosA 而且这个K会随着A的变化而变化, 只有达到了这一步,布料才会看上去更真实。 __________________ 6/17/2006 梦中的顿悟这个礼拜写了一个maya导权重的mel,叫做Sweet Baby。
之所以取这个这个名字是因为这个mel能处理模型拓扑变化的情况,
就像Sweet Baby一样甜。
Sweet Baby的作用正是maya默认import WeightMap所办不到的,
但是它有一个致命的缺陷,也是maya的通病:
maya所bake的map在uv Shell边缘处都会有锯齿,
在读取map的时候100%造成采样不正确。
因此,我动了一下脑筋,提出了tolerance sample的算法:
凡是uv shell边缘采样,均往里便宜一小段距离。
尽管这样,还是有千分之一的点会采样错误。
今天早上做梦,梦见动画督导不能接受这千分之一的错误,要求改进。
我在梦里便完成了新算法的构想。
新的算法里不再采用maya exprot的数据,
而是采用自己构架的mel 将 vertex<->UV<->Weight的数据记录下来。
并动态的将UV大小规类,以便加速读取:0-0.1,0.1-0.2……
import时采用这样的策略:
原来就存在的点,直接读取,由于已经将uv规类,所以遍历很快。
新加的点expand uv后读取周边weight数据,
并根据这点到各点的距离加权求和;
如果expand一次以后仍然都是新的点,则继续expand,
直到出现至少两个旧点为止。 6/11/2006 Angoulemu归来四人谈摘自《幻想艺术杂志》
郭竞雄:
“我只能笑笑说,中国的艺术家真的穷到只知道项目了吗?” “我相信诚信会给我带来价值。国内很多的出版社欠着我的钱呢。” “在法国的很多漫画家都是哲学家,是精神的领袖。” “现实的我们无法改变,市场的不规范我们改变不了。外国商人把眼睛头像中国,是因为这里有最廉价的劳动力,这里有广阔的消费市场。在我看来这就是对一个妓女的赏识。” 本杰明:
“老土的、艺术的、前卫的、写实的、抽象的,各种各样的风格都在这里找到了他们的读者,而不想是中国只有少女漫画这么一种风格存在。” “在中国,年长者对漫画既不了解有持敌视态度。阅读漫画的只是长期片面接受日本少女漫画熏陶的年轻人,形成了目前这种畸形的阅读习惯。” “于是第二天我也厚起脸皮不管等待的队伍有多长,签名也用打草稿,也细细描线,就差没上色了。法国人却不介意,似乎在这里,大家更在乎质量而不是效益。” 孙家裕:
“就我个人而言,世界才是我们要努力的舞台,不会只专注在某一块特定的领域。” 马毅: “……” 除了干CG,你还能干什么?会读两年工商管理。
但是我的想法实现前,我不会考虑转行。 5/14/2006 色彩空间HSV2RGB花了两天时间搞清楚色彩空间
走过一小段弯路:
如果把RGB看作输入数据
把人感到的色彩看作输出数据
那么问题就被复杂化到了四维空间
这样想下去肯定有一个结果
但得到求解结果就遥遥无期了
另外一个心得是:
HSV是根据人们的感观诞生的色彩中转变量
它存在于极坐标中
不同于RGB的笛卡儿坐标
以下是某人写的具体算法:
function hsv2rgb(h, s, v) { if (s == 0) { if (h == null) return [v, v, v]; else return null; } else { if (h == 360) h = 0; h /= 60; var i= Math.floor(h); var f= h - i; var p= v * (1 - s); var q= v * (1 - (s*f)); var t= v * (1 - (s * (1-f))); return [[v,t,p], [q,v,p], [p,v,t], [p,q,v], [t,p,v], [v,p,q]][i]; } } 5/5/2006 叠加模式的算法图层的叠加模式是十分有趣的功能:
我将在今后陆续放上我实践得出的算法。
我只探索RGB中某一通道的的算法
C:背景色某通道 B:混合色某通道 R:混合结果
R(Darken) = Min(C,B);
R(Multiply) = C*B/255;
R(Lighten) = Max(C,B);
R(Screen) = 255 - (255-C)*(255-B)/255;
R(Color Dodge) = Min(C*255/(255-B),255);
R(Linear Dodge) = Min((C+B),255); Mental Ray解答ABC解答V6一朋友的问题:
(求助2)
请问谁有Mental ray的中文帮助手册? (求助3) 各位对Mental ray渲染评价如何? (求助4) Mental ray对灯光的阴影类型有何要求?我有时候打开泛光灯的贴图阴影类型时会出现下面问题, 但阴影类型改成光线追踪后问题解决? (求助5) Mental ray可以使物体颜色外溢到附近的物体表面,如但是有些却不能,如何在建筑材质中产生颜色的外溢? (求助6) 我学运用全局光照,打开了GI\最终聚集\灯光的Mental ray全局光照.还需要什么? 2) 市面上有一本介绍Mental Ray for 3DMax的书。 单独讲渲染器的,好像叫什么“巧夺天工”,名字实在记不清楚了。 其实最为推荐的还是那两本经典的教程。 《Rendering with Mental Ray》、 《Programming Mental Ray》。 全世界人民都在用了,都是500P不到的e文教程,看起来会比较吃力。 这两本的电子版网上都有流传,只是已经过时了。 最新的MR 3.4以后的版本,构架已经改变了, 以前的mi的文件,用现在最新版本的渲染器不能正常渲染,文件需要重写。 3) MentalRay是能运用于生产的高级渲染器,并能很好地被整合到pipeline中。 目前而言,它和RenderMan各有长处,还不能互相替代。 但从长久来看,这两款渲染器都有老化的趋势,只是在今后很长一段时间内,可能后继无人。 Maxwell出现的时候眼前一亮过,但它过于保守,用法也过于傻瓜, 生产中遇到问题时,完全没有办法解决。 不过有两点是明确的: MentalRay仍然在完善中, 3.3之前还有bake bump map会自动反转的bug,当然现在已经解决。 如果撇开效率不谈,但他已经能解决渲染时的大部分问题。 (MentalRay效率已经很好,这里是相对于RenderMan的部分功能而言) MentalRay的体系十分庞大, 可以说不亚于某款3d软件,所以花再多时间深入研究都不是徒劳的。 4) 就效果而言是Depth Map的精度问题, 场景是不是太大,而且模型过于分散造成Depth Map精度被分散了? 或是精度没有打够? 我不知道如何在3DMax进行相关设置。 并且,锯齿这么明显的话,是不是柔化阴影没开? 5) 色彩溢流有一些条件。 必需发射光子,因为只有光子能传递色彩。 GI和FG都能释放光子。 物体不能太光滑,光滑的物体只能反弹光子,不能吸收光子。 所以,lambert相对于blinn而言更能体现色彩溢流。 最后,色彩溢流符合物理规律。 红色的物体不能在绿色的物体上产生溢流, 因为红光被绿色物体吸收,不能反射,人眼就看不到红色的溢流。 6) 达到全局光照的效果,不一定要把效果都打开。 开部分就已经可以。 如果GI和FG同时开,GI的精度和光子数就可以设置到很小。 因为FG会对GI有补偿。 最终效果没有达到的话,可能是因为其他的设置不对。 好比,要达到FG效果,必需打开Raytrace。 5/3/2006 Million Voices - Wyclef Jean电影卢旺达饭店(Hotel Rwanda)后面那首歌,1994年,在“没有钱,没有钻石,没有财富”(片中主题曲“Million Voices”歌词)的卢旺达,一个族裔(Hutu tribe)对另一个族裔(Tutsi tribe)进行屠杀。卢旺达没有石油,不是假想敌,教堂祈祷的声浪也没有将上帝的慈爱带来这里,百日之内百万具尸体,一天一万个温热的生命被屠杀。但世界对流血的卢旺达是冷漠的。在生与死的边缘挣扎着的卢旺达人,当看到文明世界的军队士兵时,眼睛里是期待和欣喜,以为他们得救了。但是“You’re not even a nigger, you’re an African.”没有人关心卢旺达人。军队是来保护他们的侨民。片中那场欧美侨民在白人士兵的保护下撤离饭店,天下着大雨,好像是一百万人的泪水和哭泣,这时的音乐伴奏加一段童声合唱牵动人心。坐进大巴士即将离开这生死之地的欧洲人也五味俱全,他们其中有的人如摄影记者对他们充满同情但无能为力,也有的人像游客一样举着拍摄风景留念的相机…… 镜头在这一场表现世人对卢旺达人离弃的戏里,在人们的脸上捕捉着表情…… 脆弱的女人和孩子多半都是“Don’t Leave Me Here by Myself”(影片音乐)的心情。
Wyclef Jean Theme from the movie < Hotel Rwanda > African Chorus throughout song: ----------------------------------- Ni ryari izuba, Rizagaruka, Hejuru yacu, Nduzaricyeza ricyeza. [When will the sun rise again? [Who will reveal it "to" us again?] ----------------------------------- Rwanda, Rwanda, Yeah Rwanda, Rwanda. They said: "Many are called and few are chosen," But I wish some wasn’t chosen for the blood spilling of Rwanda. They said: "Meshach Eshach and Abednego, Thrown in the fire but you never get burned," but I wish that I didn't get burned in Rwanda. They said: "The man is judged according to his works," so tell me Africa, what’s your worth? There’s no money, no diamonds, no fortunes on this planet that can replace Rwanda… Rwanda Rwanda Yeah, Rwanda Rwanda These are the cry of the children Rwanda Rwanda Anybody hear my cry? If America, is the United States of America, Then why can’t Africa, be the United States of Africa? And if England, is the United Kingdom, Then why can’t Africa unite all the kingdoms and become United Kingdom of Africa? Rwanda Rwanda, Rwanda Rwanda Yeah, yeah. These are the cries of the children, yeah. Can anybody out there hear our cries? Yeah, heavens cry ... Jesus cry. Lord, did you hear us calling you? Yeah, Rwanda Rwanda, Lord, did you hear us calling? Can you do something in Rwanda? Rwanda Rwanda, Rwanda Rwanda I’m talkin' 'bout Jesus; talkin' 'bout Rwanda Rwanda Rwanda Talkin' 'bout … talk'n 'bout ... Talkin' 'bout … talk'n 'bout ... I wanna play my guitar for Rwanda.... |
|
|