Skip to content
View in the app

A better way to browse. Learn more.

主视角中国

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
May28 的博客 于分类 综合
  • 文章

    44
  • 评论

    24
  • 查看

    148295

关于本博客

或已荒芜......

Entries in this blog

一.楼上传来弹珠的声音…… 这是个前一阵在网路里讨论的很热烈的话题,不可否认我也确实经历过这种事情.常常一个人在家的时候,或者是下午,或者是晚上,哪怕不是一个人在家,只要是家里很安静的时候.就可能听见楼上像是有玻璃球,或者钢珠,从高处掉落在木地板,或者很坚硬的地板上的声音,不停的弹~弹~弹..直到声音越来越小最后消失. 我当初念中学时常常听到,也没太在意,认为楼上的小孩子掉东西太寻常了,何况那时候玻璃珠又不是什么好希奇的玩意.现在已经几年没有听到过了,但看到网路里突然有许多人经历过同样的事情,感觉越来越奇怪,甚至有人说住顶楼的人也听过,甚至有人说楼上从来没住过人的人也听过,越说越悬..让人想着脊背发凉,再仔细一想,我初中的时候也是住的顶楼啊,但我记忆中确定有初中时听到这种声音的痕迹! 按网路上比较科学的解释,这种声音不是发自自然界的声音,而是来自于人的大脑皮层,由于疲劳或者什么什么原因,大脑里产生了这样那样的什么信号,然后导致什么什么效应...所以听到弹珠弹地声(由于科学的解释我没有仔细去记,所以只好用很肤浅的语句带过),就我个人来说,我
  • May28
1: 更换外观还不知道怎么用…… 2 : 网站速度比以前慢了 3: 博客板块背景(中部)阴影似乎没有整体的呼应 4: 还没想好……
  • May28

CHE

http://www.marxists.org/subject/art/music/mp3/hasta_siempre.mp3 Hasta siempre Comandante Aprendimos a quererte 我们学会如何爱你 Desde la histórica altura 从历史的顶点 Donde el sol de tu bravura 在那里你勇气的光辉 Le puso cerco a la muerte 包围了死亡 Aquí se queda la clara La entraniable transparencia De tu querida presencia 画像中,你深邃的目光变得如此清晰 Comandante Che Guevara 我们的英雄------切.格瓦拉 Tu mano gloriosa y fuerte 你光荣而强壮的手 Sobre la historia dispara 燃烧着历史 Cuando todo Santa Clara 当圣克拉拉 Se de
  • May28
http://swf.51.com/may28js/313364/51.swf 切•格瓦拉之歌 是谁点燃了天边的朝霞 千年的黑夜今天要熔化 也许光明会提前到来 我们听见你的召唤:切·格瓦拉 是谁指给我闪亮的星斗 心灵战胜了虚荣的繁华 在寻找家园的十字路口 我们看见你的身影:切·格瓦拉 是谁带领我重新出发 正义的思想再度升华 前进的路需要新的脚步 我们跟你前仆后继:切·格瓦拉 是谁站起来永不倒下 身后的大地开满鲜花 革命的意志百炼成钢 我们决心和你一样:切·格瓦拉 坚定我的心让红旗飘扬 接过你的枪奔赴战场 唱起你的歌就有力量 走在你的路上我们有了新的方向
  • May28
第二,修改和更新骨骼层级: 加载完骨骼层级之后,你可以操作它,更改骨骼的方位。你需要创建一个递归函数,按照名字找到相应的Frame数据对象。这个函数如下: D3DXFRAME_EX *FindFrame(D3DXFRAME_EX *Frame, char *Name) { if(Frame && Frame−>Name && Name) { // 如果名字找到,返回一个Frame指针 if(!strcmp(Frame−>Name, Name)) // strcmp函数比较两个字符串,如果两个字符串相等,返回0 return Frame; } // 在sibling frames找匹配的名字 if(Frame && Frame−>pFrameSibling) { D3DXFRAME_EX *FramePtr = \ FindFrame((D3DXFRAME_EX*)Frame−>pFrameSibling, \ Name); if(F
  • May28
2 骨骼动画的原理与实现 这里的骨骼蒙皮动画特指skinnd mesh,也叫骨骼动画。无论是合金装备,波斯王子,还是魔兽世界,到处都是骨骼动画技术的运用。用它塑造了各种各样,栩栩如生的生物。其中,人类体格的骨骼动画运用最为广泛。现在让我们一步一步揭开它神秘的面纱。 从本质上来讲,所有的3D角色动画系统都是基于一种逻辑,就是用一定的方法去改变Mesh顶点的位置,只是具体改变的方法不同而已。骨骼动画也是一样的。 骨骼动画的基本原理就是首先控制各个骨骼和关节,再使符在上面的skinned mesh与其匹配。在骨骼蒙皮动画中,一个角色由作为皮肤的单一网格模型和按照一定层次组织起来的骨骼组成。骨骼层次描述了角色的结构,就像关节动画中的不同部分一样,骨骼蒙皮动画中的骨骼按照角色的特点组成一个层次结构。相邻的骨骼通过关节相连,并且可以作相对的运动。通过改变相邻骨骼间的夹角,位移,组成角色的骨骼就可以做出不同的动作,实现不同的动画效果。皮肤则作为一个网格蒙在骨骼之上,规定角色的外观。这里的皮肤不是固定不变的刚性网格,而是可以在骨骼影响下变化的一个可变形网格。组成皮肤的每一个顶
  • May28
第五,打开X文件: 创建完IDirectXFile接口,注册模版之后需要打开X文件,枚举其数据对象。调用IDirectXFile::CreateEnumObject函数。 HRESULT IDirectXfile::CreateEnumObject(LPVOID pvSource, // .X filename DXFILELOADOPTIONS dwLoadOptions, // Load options LPDIRECTXFILEENUMOBJECT* ppEnumObj); // Enum interface 当调用CreateEnumObject函数,用pvSource指定一个文件的名字,用ppEnumObj返回一个枚举对象接口指针。用dwLoadOptions指定load操作方式。当指定DXFILELOAD_FROMFILE值,告诉DirectX从磁盘载入一个文件。还有DXFILELOAD_FROMRESOURCE,DXFILELOAD_FROMMEMORY和DXFILELOAD_FROMURL分别表示从一个资源,内存缓冲和Internet上加载
  • May28
三 3D游戏角色动画 1 介绍微软的X文件 制作3D游戏角色动画需要与之相关的“动画容器”。这个“容器”中储存着动画的数据。微软的X文件正是这样的一种容器。由于微软的影响力,它们公司设计的X文件也广为流传。X文件是一套基于模版定义的文件,理论上它能够容纳任何数据。也就意味着不仅仅是3D模型文件,任何用于游戏引擎加载的外部资源都可以被包含于X文件之中。下面我们详细的介绍下X文件。为了得到一个直观的印象,我们首先浏览下它的全貌。 xof 0302txt 0032 template Header { <3D82AB43-62DA-11cf-AB39-0020AF71E433> DWORD major; DWORD minor; DWORD flags; } template Frame { <3D82AB46-62DA-11cf-AB39-0020AF71E433> [FrameTransformMatrix] [Mesh] } H
  • May28
3D游戏角色动画 作者:迷糊小亚 QQ:183237048 2006年6月8日 时光飞逝,4年的大学生活已到尾声。我没有留下遗憾,因为我一直向着梦想努力,拼搏。游戏一直是我的梦;)以此文共勉我的同志,大家,不要放弃,一起加油!(本人水平有限,请游戏界的前辈们多多指点。) 摘要:本文主要描述了3D游戏角色动画的原理及应用,从介绍微软的X文件到最为广泛应用的骨骼蒙皮动画,另外简要的介绍了下渐变动画的原理。 关键词:Role Animation Skeletal Animation Morphing Animation Skinned Mesh Abstract:Introduce 3D Game Role Animation, for example Skeletal
  • May28
消失了N久,接下来恐怕还要消失,生活就是这样,因为这是生活! 感谢大家的支持,在我消失的3个多月里依然有近7000的点击量.我只能在以后的日子里送上更多、更精彩的内容给大家,以表示我的感谢 !
  • May28
“我们已从五点四十五分起开始还击!” 八月二十五日下午,希特勒将进攻波兰的时间规定在八月二十六日清晨。然而由于墨索里尼不打算合作,英国此时也从它对波兰的保证声明发展到与波兰建立了一个形式上的同盟。于是,进攻波兰的日期只好在规定的当天又被撤销。 希特勒十分重视使英国保持中立,因此他终于声明愿意同波兰举行谈判,前提是波兰方面应派一名代表于八月三十日以前前往柏林。 英国外交又一次帮助希特勒实现了这一计划,并劝说波兰政府尽量保持克制和友好的姿态。可是,波兰外长贝克却不打算象许士尼格和哈查那样去接受希特勒的讹诈。这样,波兰政府非但没有派出谈判代表,反而于八月三十日宣布实行了全国总动员。 希特勒长期以来所垂涎的并不只是但泽地区和波兰的走廊,而是一场对波兰的战争,波兰政府的这一决定正好给了希特勒把战争罪责嫁祸于波兰政府的可趁之机 ——他在八月三十日晚上对德国人民发表的广播讲话恰恰是这样做的。 八月三十一日十二点四十分,希特勒重新下达了进攻波兰的命令。同天晚上,党卫军的治安勤务部队制造了一个“宣传上的理由”:党卫军队员身穿波兰义勇军的制服伪装了一场波兰方面对德国
  • May28
“回归帝国之乡” 正如里宾特洛甫和希特勒事先所预料的那样,西方列强对于“合并”的反应仅仅限于提出一些抗议照会而已。希特勒此时可以放心地去猎取他的下一个目标—— 捷克斯洛伐克。 约计三百万的苏台德德国人成为希特勒此项目标的起点。他们居住在波希米亚盆地周围的山区,捷克斯洛伐克效仿法国人的榜样在波希米亚盆地构筑了要塞设施,重要的工业中心也设在此地。苏台德区的德国人组织起了不同的政治党派,其中最大的党派是“苏台德德国党”,它的领袖是一位体操运动员,名叫康拉德.汉莱。汉莱自从一九三七年起就开始公开拥护纳粹主义。奥地利“合并”以后,“苏台德德国党”根据希特勒的建议于一九三八年四月在他们的《卡尔斯巴德》纲领中要求实现全面自治、自由宣传“德意志世界观”的权力以及赔偿他们自一九一九年以来所受到的经济损失。苏台德地区出现了紧张空气,发生了与捷克警方的冲突事件。 五月二十日,捷克斯洛伐克政府给它的武装部队下达了进行局部动员的命令,这是由于政府担心德国方面会发动进攻。五月二十八日,希特勒把最高军事指挥官们召集到一起并且告诉他们说:“把捷克斯洛伐克从地图上抹掉,乃是我不可动摇的决心!”进
  • May28
一本纳粹主义生物教课书中的节选 7.选择与配偶 “选择一个民族仅是视其子嗣众多还是子嗣贫匮,是全面优秀遗传还是全面劣质遗传而决定的”。(京特语)。 因此,元首的运动号召每一个国家社会主义者不仅要把他短暂而有限的生命贡献给自己的民族,而且还必须让他的遗产、他那神圣不泯的生命——尽可能多的子嗣——流传于世。我们必须做到:不仅能为德国而死,而且也能为德国而生。 对于我们的民族来说,它总是能够一次又一次地经受住自己历史上最沉重的命运的打击,因为从白然法则来看,这个民族从未长期中断过繁殖生衍。我们之所以相信德国将与天地同在,正是因为这一自然的真谛业已在第三帝国时期重新回到了我们的觉悟中来。 正因如此,每个人一生中最为重要的进程就是选择配偶。我们特地为此向你提供十条选择配偶的建议,这些建议是由海体斯博士与帝国内务部、帝国卫生局、帝国人民健康委员会和国家社会主义德国工人党种族政策局共同合作提出来的,其中结合了我们生物学研究中的全部成果:记住,你是一个德意志人! 你所具有的一切,并非源于你自己的努力结果.而来源于德意志民族。不论你是否愿意,你属于这个民族;
  • May28
“我们已经处于动员状态” 一九三六年七月十八日,马德里爆发了由佛朗哥将军领导下的反对共和党人,社会党人和GCD人组成的人民阵线政府的西班牙军人叛乱。叛乱很快便发展成为一场血腥内战。一九三五年十月,墨索里尼发动了一场对阿比尼西亚的占领战争。这两场战争把墨索里尼和希特勒拴到了同一辆战车之上。 一九三四年六月,两人曾在威尼斯进行过一次会晤。然而此次会晤却没有取得任何政治效果。由于那个意大利Du ce盛气凌人,摆出了一副保护人的架势,希特勒因此感到自己的个人尊严受到了伤害。墨索里尼甚至连做梦都没有想过去支持希特勒“合并”奥地利的一系列计划。相反,当奥地利的纳粹分子们于一九三四年七月二十五日企图推翻政府并阴谋杀害了奥地利总理陶尔斐斯时,墨索里尼下令驻扎在布伦内罗的部队出兵,阻止了希特勒准备对政变分子所进行的一次有效支援。 一九三六年,形势出现了逆转:墨索里尼在经济上和军事上必须依赖希特勒的支持,因为西方列强针对他对阿比尼西亚的进攻对他实行了联合经济封锁。现在,希特勒和墨索里尼沆瀣一气,共同以武器和军队支援着西班牙的叛军。德国空军,海军和陆军部队在西班牙内战中取得了实战经验
  • May28
《意志的凯旋》 一九三四年九月四日至九月十日纽伦堡召开党代会期间,希特勒在盛大的场面中庆祝他对罗姆的胜利以及在国防军帮助下自己权力的巩固。他任命了一位年轻的建筑师阿尔贝特·施佩尔为党代会的组织者。施佩尔让人在纽伦堡前面的蔡波林广场上建立起一个长四百五十米,高二十七米的巨大巍峨的主席台。主席台用长方条石建成,上面仿照出土的古代帕加马王国的浮雕进行了雕刻,顶巅上有一只展翅欲飞的雄鹰,展开的翅膀竟达三十三米。广场上成千上万的卐字旗迎风招展,在三十三米的鹰翅周围装满了空军的探照灯,灯柱冲天而起,高度可达八千米。这些探照灯在夜间所造成的效果是经过精心策划的,它们给人带来一种感觉,仿佛是置身于一个巨大的大厅中间一般。 九月七日,二十万名纳粹党员排成密集的队形集会聆听了希特勒的演讲。希特勒在演讲结束时,用既对未来充满胜利信念而又不无威胁的口气地说道:“我们是强大的,我们必将更加强大!”鲁道夫·赫斯宣布道:“纳粹党是希特勒,希特勒则是德国,德国就是希特勒!万岁——希特勒! 万岁——胜利!万岁——胜利——希特勒!!!”狂热的人群一齐跟着振臂高呼,他们被这样一种颇具诱惑力的欢庆气氛
  • May28
与罗马教皇签立的一项条约 一九三三年七月二十日,希特勒与梵蒂冈签立了一个国家契约。根据此项条约,天主教会的牧师们放弃了一切政治活动。作为酬报,天主教会有权“独立决定和管理自己的事务并可以在他们所管辖的成员中间颁布有关法律和命令。” 此外,国家还对天主教学堂和团体的安全做出了许诺,希特勒当然不会长期信守这些诺言。 罗马教皇庇护十一世“幸运地”从希特勒身上看到了一个把自己“对共产主义和虚无主义进行毫不妥协斗争的宗旨写在自己旗帜上”的领导德国政府的杰出人物。对于希特勒来说,与教皇立约则具有难以估量的价值:国际上,这种从“天赋神权” 那里得到的承认使这位昔日的马路鼓动家变得受人尊重起来,国内政治方面,和教皇的契约导致了许多笃信的天主教徒也不再继续与希特勒分庭抗礼了。 现在,希特勒在采取下一个外交步骤之时则可以指望在德国获得全面的支持。一九三三年十月十四日,希特勒宣布德国退出国际联盟和日内瓦裁军会议,因为这两个世界性组织拒绝让德国在军备问题上与其他国家完全平等。这种状况——用希特勒的话来说——“对于一个酷爱荣誉的六干五百万人口的国家和一个把荣誉视为生命的政府,是一
  • May28
一九三三年一月三十日——从“后门”通往权力 假如没有巴本的重新插手,希特勒恐怕到今天也不会向权力前进一步。一九三三年一月四日,巴本在科隆的银行家冯·施罗德那里会见了希特勒。双方达成了一种默契:希特勒答应加入一个联合政府,而巴本则接受了希特勒的权力要求。一月十七日,希特勒约见了胡根贝格,后者答应给这样一个希特勒——巴本内阁以支持。 当施莱歇不得不意识到,他的那个争取政府多数的计划已经成为水中捞月之时,便于一九三三年一月二十八日弃冠下野。一九三三年一月三十日,兴登堡任命希特勒为国家总理。 正如一切事实所表明的那样,希特勒登上权力宝座既非是命中注定,亦非是不可阻止。直到一九三三年为止,尽管希特勒确实取得了令人瞩目的竞选成果,但他却从未拥有过德国选民的多数选票。总之,希特勒不是靠了领导一种革命的群众运动取得的政权,而是通过一种“后门”阴谋被任命为国家总理的。此外,希特勒恰恰还是当他的政治运动已经如日过中天、走上了下坡路,而对他上台有利的经济和政治因素业已消灭的这样一种时刻交上了权力运的。 一九三二年夏季以后,经济生产缓慢上升,战争赔款也已经在一九三二年秋季被
  • May28
实行奉迎拉拢的方针 希特勒取得了一个出乎意料的胜利。然而,由于他并不把纳粹党看成是一个寻常的政党,而视之为一种革命运动,因此他绝对不甘于只发挥一种从属性的作用,甚至就连与其它政党并驾齐驱也难遂他的心愿。他并无诚意准备在国会体制中去达成通常情况之下的那种妥协以及组成联合执政党派。 希特勒的目的是要集权力于一身。但是,假如他要继续坚持合法斗争的纲领,就只能通过他的党在国会中占据绝对多数或者通过总统授予特别全权方可达到这一目的。一九三零年至一九三二年期间,希特勒所采取的策略是坚持合法斗争的口号,继续争取选票,表示愿意作为总统能够依靠的一种多数中的合作伙伴,为总统以及他的那些具有保守意识的顾问们效劳。与此同时,通过不断地提示希特勒纲领中的 “国家主义革命”——这是永远不能变更的——来向总统施加压力。 实行上述策略的困难在于,一方面希特勒必须得估计到党内左翼派别日益激烈的反对以及冲锋队会站出来反对为旧军队效劳,另一方面他则必须要屈从于总统身边那个领导集团所做出的决定。这个领导集团的本意则是只能根据自己的条件,而不是根据希特勒的条件才能接受他作为合作伙伴。 不言而喻
  • May28
鼓手 一九二九年,一件具有全国意义事件的突然爆发,给希特勒送来了利用魏玛宪法中一个典型民主因素的机会,这就是收买民心。 一九二九年夏季,外交部长施特雷泽曼批准了一项解决德国战争赔款的调整计划,这一计划是由一个名叫欧文·德·杨格领导下的专家委员会制定的。杨格计划中虽然没有包括进德国方面的一切愿望,但与一九二四年的戴夫斯计划相比,仍然是一个进步。然而,国家主义反对派们却掀起了一场反对新计划的轩然大波。德国国家主义人民党(DNVP) 和国家主义国防联盟(钢盔队)于一九二九年七月九日建立了一个所谓“争取民众反对杨格计划全国执行委员会”,领导这一运动的是德国国家主义人民党的新任主席阿尔弗雷德·胡根贝格,此人是一个货真价实的大德意志主义者、反动分子。他从前曾在克虏伯手下担任过经理,现领导着一家庞大的新闻——电影康采恩。他手中握有数目可观的金钱,在许多工厂企业中具有影响,控制着大部分新闻团体并兼任着德国最大的电影公司——乌法的业主。 希特勒抓住时机准备进行一场迎合民众心理的宣传鼓动,因为这是符合他的那个国家主义纲领的。此外,这样做还将使他获得一个良机,即通过与胡根贝格
  • May28
采取合法路线的希特勒 一九二四年十二月举行的国会选举中,国家社会主义团体失掉了半数以上的席位。这反映了共和国在政治上和经济上已经开始稳定,这种稳定一直持续到一九二八年。 通货膨胀结束之后,战争赔款问题也于一九二四年根据美国人戴夫斯的一个计划和一项八亿马克的国际公债而相继得到了解决。戴夫斯计划使得美国货币开始源源不断地流入德国。工业和商业又繁荣起来。一九二五年七月,法国人撤出了鲁尔。洛迦诺条约的签定以及德国在一九二六年加入国际联盟似乎发出了德法之间紧张关系开始解冻的信号。这时,甚至连资产阶级保守派们也可以与共和国妥协共处了,尤其是当原德皇的陆军大元帅、德高望重的保罗·冯·兴登堡于一九二五年被选为国家总统以后。由于有了这个“代理皇帝”,满足了那种对于权威的希冀。此时的政治和经济情况从表面上来看继续有着起色。 就连“国家主义”的反对派们到了此时也不得不面对这种现实。希特勒从失败的政变中悟出了一点,即不能够通过政变去夺取台上统治者们的权力;相反只有通过与他们的合作才能够取得政权。希特勒现在所要采取的策略是明白无误的,即充分利用共和国宪法所提供的一切合法条件去牟取政权,去
  • May28
希特勒的政变 一九二三年十一月八日晚上,希特勒利用时机发动了一场突然袭击。那天晚上,巴伐利亚邦政府的部长和高级文武官员们在市啤酒厅的地下室内举行了一次支持卡尔的“忠于祖国集会”。晚上九时许,正当卡尔宣读一篇关于“马克思主义”问题的报告时,希特勒和他的冲锋队员们以及戈林突然破门而入,冲进了会场。希特勒首先朝天花板放了一枪,遂使大厅里顿时变得鸦雀无声,尔后他纵步跨上了讲演台。 希特勒挥舞着手枪,声嘶力竭地喊道:“国民革命开始了!大厅现在已被包围,任何人也不得擅离一步!”紧接着,他宣布巴伐利亚邦政府已经垮台并且命令卡尔、洛索和巴伐利亚警察局长赛塞尔跟他一起到隔壁的一个房间中去。与此同时,戈林则指挥着冲锋队队员们将大亍里的其他与会者看押了起来。希特勒要求他的三个“俘虏”人伙,并在国家主义政府和军队中许给他们以不同的职务。然而,这三个人却不肯轻易就范。希特勒又一次拔出了他的手枪,“这里面有五粒子弹”,他用沙哑的嗓音威胁着说,“假如失败,其中四粒将是给背弃我的人准备的,最后一粒将留给我自己。”这时,卡尔要求知道,鲁登道夫对这一事件究竟持何种态度,但鲁登道夫此刻却还没有到达。希特勒把
  • May28
冲锋队——希特勒的“御林军” 一九二一年八月,专门负责在希特勒举行集会时维持“秩序”的那些武斗队演变成为一个身着戎装的准军事化组织。这个组织最初起了一个旨在避免招风惹眼、引来非议的名称,叫作“体育运动队”。两个月以后,“体育运动队”在其体育的原意上将名称做了微妙但却更为符合实际的改变,换作“冲锋队”,简称为SA。 冲锋队主要招募不能进人十万常备军的那些参加过第一次世界大战的旧军人,也招募那些此间必须解散的志愿团中的一些军人。恩斯特·罗姆担任了冲锋队队长。冲锋队起初只是执行维持秩序和警卫任务,因而它从一成立起就被看成是一支党的军队。根据希特勒的“必须用暴力来清算暴力”这样一句格言,这支党的军队应该用武力来对付党的政敌。 一九二一年八月十四日《人民观察家报》在一篇题为《致我们的德国青年》的文章中这样号召说:“冲锋队将把我们的青年党员团结起来,作为一支钢铁队伍为我们为之冲锋陷阵的整个运动贡献自己的力量。冲锋队应该成为一个自由民族的国防意志的体现者,应该成为领袖们所领导的开拓工作的一面盾牌。” 毋庸置疑,冲锋队当时对于青年党员们具有着一种强烈的、神奇的吸引力。冲
  • May28

Account

Navigation

搜索

搜索

设置浏览器推送通知

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.