AI-逆向工程的原理与实验
看到 AI 复刻 Photoshop、After Effects,或者解析尼康相机滤镜的演示,很容易产生一个疑问:没有源码,AI 怎么知道软件内部在做什么?难道把安装包交给模型,它就能还原整个程序? 实际上,“AI 逆向”包含几种不同的工作
MAKE THINGS · WRITE THINGSCURRENT FOCUS
用鲜明模块整理游戏开发、AI、视觉设计与生活中的好奇心。每篇文章,都是一次值得留下的探索。记录技术、视觉和创作过程中的连接。
LATEST NOTES
从最新记录开始,或按左侧主题筛选。
看到 AI 复刻 Photoshop、After Effects,或者解析尼康相机滤镜的演示,很容易产生一个疑问:没有源码,AI 怎么知道软件内部在做什么?难道把安装包交给模型,它就能还原整个程序? 实际上,“AI 逆向”包含几种不同的工作
调色时最常见的困惑,往往不是“不知道滑块在哪里”,而是不知道画面究竟出了什么问题:是整体太暗,还是主体不突出?是颜色不够鲜艳,还是所有颜色都在争夺注意力?直方图明明没有碰到两边,为什么看起来还是灰? 直方图能把一部分视觉判断转化为数值观察,
会议室里在定裁员名单,两个人选。A 是那个话不多、绩效中等的同事;B 是总监的老同学,家里上个月刚出了事,手上还有一个收尾的项目。讨论到第三轮,结论自己浮出来了:B 留着,A 交接起来方便。每个人说的都是真话,只是这些真话恰好在同一个人身上
这份指南按”按快门前后该核对的顺序”排,可以逐项对。片子出问题,八成不在画质,而在几个能核对的地方:网格线开没开、变焦按在光学点还是数字点、曝光有没有被 HDR 填平、机位是不是一直站着拍、光是不是正午顶光。 最该先搞清的一条:屏幕上的变焦
1929 年之后的那几年,出现了一个让当时的主流经济学解释不了的场面:工厂还在,机器还在,工人还在,钱也在银行账上,但生产停了一半。物价在跌,工资在跌,按教科书说的,跌到一定程度就该有人开工了,可它没有发生。美国失业率一度接近四分之一。 1
1776 年,亚当·斯密在《国富论》里写下一句后来被引用到磨损的话:我们的晚饭,不是出自屠夫、酿酒师和面包师的仁慈,而是出自他们对自身利益的关切。一百五十六年后,莱昂内尔·罗宾斯在伦敦发表一本不到两百页的小册子,把经济学定义成「研究人类行为
2022 年之后,中国经济增长的中枢在往下走。解释有很多:疫情的后遗症、房地产的调整、外需的波动、民营部门的信心。对应的政策工具也很熟:降息、专项债、以旧换新、放松限购、给企业减负。 这些工具都指向同一个方向——把需求拉起来。但有一个更基本
「地方政府的钱从哪里来」听起来是财政学的题目,其实是过去十年中国经济新闻里反复出现的那条暗线。公交停运、绩效工资延发、城投债展期、土地流拍、化债方案,这些看上去互不相关的事,往下追两层都会撞到同一个东西:地方政府的收入结构。 讲宏观,通常从
同一型号的设备,同一张图纸,同一批原料,同样的班次安排。把这套东西原样搬到另一个地方,一年之后产出少了一半,废品率高出一倍。搬过去的工人,还是在原地培训出来的。 这当然是编的。但它不是凭空编的:过去几十年,制造业向低成本地区转移的经验里,”
1990 年代的日本,政策利率一降再降,1999 年降到接近零,企业部门没有回来借钱。1930 年代的美国,短期利率跌到 1% 以下,银行体系里躺着大量超额准备金,工厂继续关门。2008 年 12 月,美联储把联邦基金利率压到 0 到 0.
先说一件在当时听起来很小的事。2007 年上半年,美国一部分次级住房抵押贷款的逾期率开始上升。这类贷款规模有限,借款人多是信用记录不佳的家庭,放在十几万亿美元的住房信贷存量里不算大数目,监管部门的公开表态是”可控”。 一年半之后,2008
有一个国家,政府欠的钱相当于一整年经济产出的两倍半,国债利率常年趴在零附近,没有出现债务危机。也有一个国家,债务只有一年产出的一百三十上下,利率却一路飙到两位数,最后要靠外部救助才没有违约。前一个是日本,后一个是 2010 年的希腊。 把这
先说一个具体的场景。美国的 30 年期固定利率房贷,2021 年冬天还在 3% 上下;2022 年 3 月美联储开始加息,连续十一次、累计五个百分点出头,到 2023 年 7 月把联邦基金利率的目标区间抬到 5.25%–5.5%。同期,同一
去问一个没学过货币银行学的人:银行放出一百万贷款,这一百万是从哪来的?多半会得到同一个答案——是别人存进来的。银行把大家存的钱汇集起来,再借给需要的人。这个说法出现在中学课本里,也符合日常经验,而且它有一个让人安心的推论:钱的总量由存款决定
每个月统计局公布数据那天,评论区通常只有两种声音:一种说数字注水,一种说数字还行。第三种很少出现——这三个数字到底是怎么算出来的。 这篇讲 GDP、居民消费价格指数和失业率。它不教你怎么预测经济,只做一件事:把三个最常被引用的数字拆开,看它
一家做冷冻水饺的公司,面粉从市场上买,猪肉从市场上买,包装盒也从市场上买。它不会自己去种小麦,不会自己造冷柜,也不会自己去开超市。它自己做的,是配方、是调馅、是那条灌装线,是印在包装上的那个名字。 这条线画在哪里,看起来取决于老板的经验和偏
同一家电影院,同一个影厅,同一排座位:学生 35 元,成人 60 元,周二全场半价。影院没有因为学生坐得更靠后而少交房租,放映机的电费也不会因为观众是谁而变化。票价差出来的那 25 元,和成本没有关系。 这种”同样的东西、不同的价”到处都是
一个城市要供水,通常只有一套管网。让两家公司各埋一套管子、各配一套泵站、各抄一遍表,技术上做得到,账算下来没人愿意干。这不是哪条法律规定的,是成本结构自己长成这样的。 “只能有一家”紧接着引出一串更难的问题。既然只有一家,它凭什么不多收钱?
设想有这么一所大学:课程内容大部分已经过时,考试靠背笔记,学生在四年里主要学会了熬夜、写邮件和在截止日期前一周赶完一个学期的活。它不发技能,只发一张纸。然而它的录取很严,毕业也不容易,用人单位清楚这一切,仍然优先录用它的毕业生,起薪还高出一
一个刚买车的人通常会做两件事:买一份保障比较全的保险,然后在停车场里格外小心。过一年,这两件事的优先级会调换。保险还在,小心少了。剐了一道漆,先想到的不是自己开车太糙,而是走保险吧,反正不用自己掏钱。 这件事被讲成道德故事已经很久了:有了保
一位朋友要卖车。2019 年买的,一手车,保养记录齐全,出过一次小剐蹭,补过漆,没有结构损伤。他心里底价 11 万。来看车的人不少,出价最高的一个给到 8 万 5。 他不服气:同款同年份的车,网上挂 13 万。买家的回答很平静:网上挂多少是
先说一件几乎不需要论证的事:没有人会自己在小区门口立一排路灯,然后向路过的每个人收钱;也没有人会在公海上围一片水面,说这里的鱼是我养的,请大家别捞。 这两件事看起来没有关系。一个是没人愿意出钱,一个是人人都抢着用。但经济学把它们放进同一张表
门口有棵树的房子,通常比没有的贵一点。这棵树是上一任房主种的、市政种的,还是看房那天恰好路过看见的,对价格的影响差不多。可一旦要有人真的掏钱去种、去修剪、去承担它拱坏地砖的麻烦,问题就出现了:这笔钱该谁出。 种树的人得到阴凉、窗外的一点绿色
一笔买卖成交的时候,买卖双方多半都觉得自己占了便宜。卖家赚到了钱,买家拿到了东西,两个人各自走开,谁也没亏。这句话听起来像场面话,但它是经济学里少数能被严格写下来的结论之一:自愿交易创造价值,而且创造出来的这部分价值,在成交之前并不存在于任
同一条街上两家店,进货价一起涨了两成:一家第二天客人少了一半,另一家该卖多少还是多少。老板通常说”我这儿的客人认我”,但真正起作用的往往不是感情,而是顾客手里有没有别的去处——第一家隔两百米还有三家同类,第二家是这片唯一一家。 经济学给”有
先说一件几乎所有人都同意的事:房租太贵。再说一件几乎所有人都支持的政策:规定房租不许超过某个数。两件都很合理的事凑在一起,会发生什么? 过去一百年,经济学家反复算这同一道题,答案相当一致,而且在政治上不怎么讨喜。 这是「经济学入门」系列的第
“这款游戏支持光线追踪”这句话,在 2018 年是卖点,到 2026 年已经接近默认配置。但同样一句”支持光追”,Portal RTX 和 Cyberpunk 2077 的差别不在画质选项上,而在渲染架构:一个整帧由路径追踪生成,另一个只是
会议室的门关上时,A 还不知道自己已经被裁了。老板讲了四十分钟:公司为什么必须砍掉这条线、标准是什么、为什么轮到他、补偿怎么算、推荐信找谁写、内部转岗还有两个口子。同一天下午,B 的邮箱收到一封群发邮件,附件是一份 PDF,正文只有一句”因
一杯咖啡不要钱,条件是你排两小时队。队伍绕了半个商场,里面的人大多在算同一笔账:反正不花钱,排就排了。 但两小时不是零。它可以是写完一版方案、睡一觉、多看二十页书,也可以干脆去加两小时班。这笔没有收据的支出,才是那杯咖啡真正的价格。收银台收
这是一套给非经济学专业的人写的基础读物,二十三篇,从「成本是你放弃的那个东西」一路走到「凯恩斯与哈耶克为什么两派都有证据」。每篇独立成文,四千五到六千五百字,能单独读;按顺序读则是一条线:先学会算自己的账,再看懂价格信号怎么传不动,然后是企
“基模”这个词在中文 AI 语境里出现频率很高,但经常混着两件事:一是 foundation model,指大规模预训练、能迁移到大量下游任务的通用底座;二是 base model,指相对于 instruct / chat 版本、
「康波」是中文互联网上少有的、从学术论文一路降格成算命词的术语。它的全称是康德拉季耶夫长波(Kondratieff wave),指资本主义经济中约五十到六十年一轮的长期起伏。在券商研报和短视频里,它被压缩成一句话——「人生发财靠康波」:赶上
「美剧」在豆瓣上其实很难当分类用:它既包括 HBO 那种一季十小时、拍给成年人看的严肃剧集,也包括每年秋天准时上档的情景喜剧。评分体系也不是一套:一部剧第 3 季可能 9.4,第 8 季掉到 7.1,而豆瓣把每一季当作独立条目打分。直接拿「
深夜十一点,你盯着账户里那只浮亏两万多的股票。三个月前买它,是因为同事说”某某靠这个翻了倍”;现在不肯卖,是因为”都亏这么多了,卖了不就白亏”。一个念头来自最容易想起来的那张脸,一个念头来自已经付出去的那笔钱。两个都不像算术题。 你在下单页
这两年「AI 建模」被当成一个东西来讲,但真正落到项目里会发现,市面上叫这个名字的至少有四类完全不同的技术:让大模型写 Blender 脚本、从图或文字直接生成网格、从照片视频重建、以及参数化 CAD。 它们的差别不在模型参数量,而在于交付
中国历史最容易记混的不是人物,是地理。同一个地名在不同朝代指向不同的城:今天的西安做过镐京、长安、大兴;今天的南京做过建业、建康、应天;北京在成为帝都之前只是辽的陪都。只看朝代年表,你记住的是「唐 → 宋」;只有把都城和时间叠在一起,才会看
昨晚你刷到一条视频:某地商场的扶梯”咬”住了一个人的鞋,评论区刷满”再也不坐扶梯了”。今天你去同一家商场,绕了半圈,找到一部直梯。你没有算过任何数——扶梯出事的概率,比你每天开车上下班低几十倍。真正改变你路线的不是数据,是那段三十秒的画面。
一匹马能够用敲蹄子回答算术题,看上去像是懂得计算。但如果提问者不知道答案,或者马看不到提问者,表现就发生变化。研究的关键于是从“马有多聪明”,转向“答案是不是从现场线索传过去的”。 这是“聪明的汉斯”故事带来的方法提醒:观察者既可能记录结果
今天街上教的三分法——“把主体放在九宫格交点上”——是二十世纪摄影教学加上去的;它 1797 年被写下来的原意完全是另一件事:不要把画面切成对半,要用 2:1 这种不等的比例来分配天空与地面、明与暗。而我把 9 幅公认的名作逐个量了一遍,落
期末考前一天的自习室,同桌忽然转头问:「那章经济学的知识点,你都看会了吗?」你头都没抬,说会了。等他转回去,你随手合上书,想在心里复述一遍——结果连第一个概念的定义都拼不完整。刚才那半小时你确实在看书:字都认识,例题看得懂,荧光笔画得整整齐
补色(Complementary Color)不是一个固定的颜料配方,而是一条生理机制的结果:眼睛用”对立”的方式编码颜色(红—绿、蓝—黄、明—暗),当某一种信号被持续刺激后疲劳,再看白墙时它就会”反向”溢出,你看到的那个颜色,就是它的补色
同一个上午,同一间会议室,两个人在同一张裁员名单上签了字。 A 回到家,把包往玄关一扔,在沙发上躺了四十分钟,脑子里反复只有一句:”我果然不行,我在这个行业就是个废物。”三个月后他还在投简历,越投越没底气。B 也难过了一整晚,第二天早上给自
空气透视(Aerial Perspective / Atmospheric Perspective)指的是:物体并不会因为”远”而自动变小变模糊,它之所以看起来又淡又蓝又没细节,是因为你和它之间的空气把光散射掉了——距离越远,中间
你躺上手术台,麻醉还没推。主刀医生、麻醉师、护士围过来,一起念一份清单:这个人是谁、做的是哪一侧、有没有药物过敏史。三项核对,没一项在问”怎么把手术做得漂亮”。它们全在问同一件事:别切错人,别切错边,别让他过敏休克。 这份清单是逆向思考(I
同时对比(Simultaneous Contrast)指的是:一个颜色的”样子”不是它自己的属性,而是它和周围颜色比较出来的结果——同一块灰放在深底上会发亮,放在浅底上会发暗;同一块蓝挨着橙会显出更强的冷,挨着绿则会往青紫偏。 一句话记忆:
周三中午,你破天荒没跟同事拼奶茶,下楼跑了三十分钟。回到工位时心情格外好,甚至有点飘——今天这个人,自律。晚上下班,你顺路走进炸鸡店,点了双人份,加一杯大杯可乐。理由在脑子里只花了半秒:”我都跑了三十分钟了。” 那天你消耗的热量,远没有吃进
最近用 ComfyUI 跑了一批游戏资产相关的生图测试,主要分成三类:原画、纹理和数据图。比起单纯看图片是否好看,我更关心它们距离实际使用还有多远,以及后续需要补多少工作。 目前我的结论是:原画能力 > 纹理图能力 > 数据图能
明暗对照法(Chiaroscuro)不是”把画面画暗”,而是用极端的光影反差把形体从黑暗中”雕刻”出来,并同时决定观众的眼睛先看哪里——它起源于文艺复兴对”体积感”的追求,成熟于卡拉瓦乔式的全黑背景强光,延续到伦勃朗的心理化布光,今天活在你
看见同事被当众羞辱,或者在公共场所遇到有人被纠缠,很多人的困难不是认不出不妥,而是不知道能怎样介入。直接争辩可能升级冲突,完全离开又放不下,于是卡在原地。 旁观者干预(Bystander Intervention)把问题变得具体:在当前条件
美式漫画(American Comics)最让人过目不忘的,是它那股”扑面而来”的视觉冲击力:粗重有力的墨线、高饱和的鲜艳色彩、肌肉贲张的动态,还有——那些密密麻麻的小圆点。许多读者第一次注意到这些圆点时会好奇:它们是印刷失误吗?为什么漫画
深夜两点,你刷到一条”某明星疑似塌房”的帖子,配文只有六个字:已知内情,蹲后续。你翻完三百条评论,还是没等到那个结局。切到另一个平台,又切回来,手指自己在下拉刷新——不是你多在乎这个明星,是”故事讲到一半卡住”这件事本身让你坐立不安。直到某
试用期第三个月,你被拉进一间小会议室。客户拍了桌子,你把笔放下,说:文档里写得很清楚,是你们中途改了需求。技术没错,逻辑全对,一个字都不用改。会议室安静了三秒,客户把合同推回来,说再考虑考虑。 半年后,同一个客户,同一间会议室,坐的是你同事
你去两家健身房体验。A 家的跑步机没有屏幕,正对着一面白墙和窗外灰蒙蒙的天,你盯着秒表跑了十五分钟,觉得时间像被人拽住了尾巴。B 家的机器屏上跳着公里数、卡路里和配速曲线,还有一行小字:”距 5 公里目标还差 1.2 公里。”同样一台机器,
你把一台用了两年的相机挂上二手平台,心里价位三千五。买家第一句话只有五个字:”两千,卖不卖?”你心里瞬间起火,回了句”不可能”。可半小时后,你自己先松了口:”那三千五,最低了。”对方顺势接上:”三千二,今天就能拿走。”你盯着”今天”那两个字
你大概经历过这样一场会。 产品部要上一个”颠覆性”新功能。老板笑眯眯地说”大家都说说看法吧”,语气很轻。第一个发言的人说这功能有魄力,第二个说很有前景,第三个明显顿了一下,扫了一眼前两位,说”确实很不一样”。轮到你,那份数据模型里有个明显的
周五晚上九点半,你在楼道里站了半分钟。手机屏幕上还亮着客户第三遍发来的”这个方案还是不行”,你把脸上那层冷气搓掉,才推门进屋。孩子趴在桌上写作业,铅笔在本子上戳出一片密密麻麻的小点。你问”写完了吗”,他抬头看你一眼,那眼神是躲闪的、提前认错
折腾电脑这么多年,真正留下来常驻的,反而不是那些大型软件,而是一批「小工具」:单个功能不复杂,装上就用,平时几乎感觉不到它们的存在,但一旦缺了就浑身难受。这些年我把尽量多的常用软件换成了开源(Open Source,源代码公开)方案,一方面
你在输入框里打了一行字:「第二页那个转化率算错了,回去改。」盯着看了三秒,删掉。重打:「小王,你上周那版方案的框架我很欣赏,逻辑很顺。不过第二页……」又删掉。第三次,你终于把话说圆了:先夸思路,再点数据,最后补一句「改完这版你直接推进,我看
凌晨两点十七分,你躺在床上,第七次拿起手机看时间。次日上午十点要上台汇报,你已经把”必须睡着”这件事默念了四十遍——越念越清醒。白天那句说砸了的场面话、三个月前没回的那封邮件、前任左眼角那颗痣,排着队往脑子里挤。你没有失眠,你是在跟自己打仗
1978 年 3 月 22 日,波多黎各圣胡安。两栋酒店之间拉着一根钢索,七十三岁的卡尔·瓦伦达(Karl Wallenda)踩了上去。底下的人群,还有风,他这辈子见过一千次。 他没有摔在最险的中间段。他摔在最后几米——快到终点、几乎可以算
朋友压低声音跟你说:”我听人说,隔壁公司要裁员 30%,小道消息,你别外传。”你当场翻了个白眼——没头没尾的传闻,谁信。三周后,你在饭桌上听见有人认真地问:”他们裁员名单定到哪一步了?”你也跟着点头。因为在你脑子里,这件事已经从”听说”悄悄
凌晨一点,你把手机架在桌角,按下录屏,对自己说了一句”就当有人在看”。接下来四十分钟,你没碰一次短视频,连水都没起身倒。关掉录屏的那一秒,你瘫回椅子里,刚才那股劲像被人拔了插头。 变的不是你,是”有没有观众”。这个现象有个正式名字:霍桑效应
一次失误,被说成“这个人就是粗心”;一次不愿发言,被归类为“不适合带团队”。评价从一件事滑向一个人的时候,后续机会和解释方式也可能跟着改变。 日常所说的标签效应,常把身份称呼、自我概念与他人的对待混在一起。本文重点讨论标签如何固定解释、分配
你在手机上点了一个”免费试用 7 天”。填完卡号,页面底部浮出一行小字:试用结束后每月 68 元。你扫了一眼,划走了。第七天凌晨,一条扣款通知安静地躺在通知栏里,你甚至没生气,只是有点恍惚——我什么时候答应的? 你答应的那一刻,价格不是 6
晚上七点,你打开外卖软件。烧烤、寿司、麻辣烫、轻食沙拉、越南河粉、日料便当,列表往下滑了三屏还没到底。你加了两家进购物车,又删掉;点开一家看评价,看到”配送 55 分钟”退出来。二十分钟过去,你关掉 App,烧了壶水,泡了碗方便面。 不是你
晚上十一点,你对自己说”再刷五分钟就睡”。 第一分钟刷到一条好笑的,第二分钟刷到一段让你皱眉的新闻,第三分钟你已经在看一个陌生人拆快递。两个小时过去了,屏幕按灭的那一刻,你的眼睛干,脑子空,心里还有一点说不出的恶心。你不快乐,甚至不太记得刚
饭桌上,朋友放下杯子开口:借我五万,周转三个月。你手里的筷子停了一下,说这真不行。他没生气,只是叹了口气:那……五千,就一周,救个急。你几乎立刻就答应了。 事后回想,你会把这归给自己的心软。可那个五千,如果他在第一句里就直接说出口,你大概也
周六下午,商场门口。一个穿马甲的学生拦住你:”同学,帮我填一份问卷,就一分钟。”你看了一眼表,反正没事,就填了。他很认真地说了声谢谢,然后把手机翻到另一个页面:”我们在给山区的孩子做早餐计划,不多,就一杯奶茶的钱,你看能不能支持一下?” 你
你刷着手机,一个保温杯划过去,没什么感觉——家里还有三个。可页面角上跳出一行红字:仅剩 2 件,3 分 27 秒后恢复原价。 你盯着那行字,心跳快了一拍。手指已经点进下单页,还顺手替自己找了理由:万一以后想买买不到了呢?现在不买,是不是亏了
柜子顶上那盒巧克力,你其实早就看见了。铁盒,金边,缠着一根红绳。你从来没想过要吃它。 直到妈妈指着它丢下一句:这个不能动,等过年。 那句话之后,铁盒变了。你开始踮脚看它,开始记妈妈出门的时间,开始在脑子里排练踩上凳子的角度。三个月后你终于偷
体育课最后一次拔河,绳子中间系着一条红布。你被安排在队尾,双手握绳,身体后倾,脚跟卡进沙地。哨响,前面的人喊号子,你也跟着喊。二十秒后红布过线,你们赢了。散场时你活动手腕,忽然意识到一件事:刚才那二十秒,你的手心几乎没怎么疼。 你没有故意放
你担心新同事不可靠,于是不给他完整信息,不安排重要任务,也很少反馈。他始终无法熟悉项目,交付越来越慢。几周后,你说:“看吧,我一开始就知道他不行。” 这可能是一条自我实现预言(Self-Fulfilling Prophecy):原本未必成立
深夜十二点半,你躺在床上刷手机,划到一条讣告——某个你只在电影里见过的面孔走了。你心里”咯噔”一下,手指停了半秒,然后继续往下划:点开那条”国产之光碾压国外”的热搜,在评论区敲一句”外国佬懂什么”,又顺手把购物车里那件一直舍不得买的外套结掉
你拿着同一份检查报告,坐进两间不同的诊室。第一位医生扫了一眼片子:这个手术成功率 90%,很安全,今天就能签字。第二位医生扫的是同一张片子:这个手术有 10% 的死亡率,你要想清楚。你当场把手缩了回来,说想回家和家人商量一下。 两位医生都没
你刚入职时,对斜对面的同事没什么印象。三个月后,你们仍然没有深入交谈,但电梯、走廊、茶水间里的反复碰面,让他成了一个“看着顺眼的人”。挑搭档时,你可能先想到他,而不是另一位能力尚不熟悉的同事。 这就是曝光效应(Mere Exposure E
你被随机抽中,领到一件卡其色制服、一副墨镜、一只哨子和一根警棍。任务说明只有一句:让这栋楼里的秩序运转起来。没有人叫你打人,没有人给你任何暴力指令。你的”同事”是隔壁宿舍的同学,”犯人”也是。 三天后,你会在凌晨把一个人从床上拽起来做俯卧撑
1961 年 7 月,耶鲁大学地下室。你抽到一张签,当”老师”;隔壁坐着”学生”,一个说话带点紧张的中年男人。你的任务很无聊:念一对单词,他答错,你就按一次电击。15 伏,面板上写着”轻微电击”。30 伏。45 伏。 到 75 伏,他哼了一
你半夜做完一个性格测试,二十道题,答完弹出一份”专属性格报告”:你外表随和,其实内心很有主见;你有时渴望热闹,有时只想一个人待着;你在意外人的看法,但真正懂你的人不多。你盯着屏幕愣了两秒,截图发到群里:”这也太准了吧。” 第二天你拿同事的手
你本来只打算看一集。 凌晨一点四十,最后一幕停在主角推开那扇门,镜头切到对面那张震惊的脸,片尾曲起。你骂了一句,手指已经点开了下一集。三点,你在看第四集。剧情其实不好看,你自己也知道。 第二天醒来,你想不起昨天下午开会时同事说的那句关键的话
WebGL 自 2011 年由 Khronos 推出,把 OpenGL ES 搬进浏览器,如今几乎所有网页 3D 内容——电商展示、数据可视化、营销互动页、轻量游戏——都跑在它上面。十多年里,围绕这条 API 形成了三类引擎:为 Web 而
商场门口,一个陌生女孩把一小杯奶茶塞到你手里:”免费的,尝一下。”你刚吃完饭,本来不想喝。可那两口下肚,你没走。队排得挺长,你挪到了队尾——“不买点什么,挺不好意思的。” 那杯奶茶成本不到两块,你买走的那杯二十五。她卖给你的不是奶茶,是一次
公司发年终奖那天,你在工位上收到一封抄送错了的邮件。同一批入职、同一个项目组的同事,数字是你的两倍。你盯着屏幕看了三秒,把聊天框里”谢谢公司”四个字删了三遍,然后打开了招聘网站——不是真想跳槽,是想让那口气有个去处。 你损失了什么?什么都没
你去办手机套餐,销售把一张单子推到你面前,上面已经勾好了”每月 58 元,含 30G 流量”。旁边其实还有 38 元和 28 元的档位,字更小,位置更靠下,得自己去找。你扫了一眼,懒得比,签了字。你以为那是你的判断,其实你只是没有反对——而
1943 年,美军的一间会议室里摊着一张图。所有从欧洲战场飞回来的轰炸机,中弹位置被一个个标成黑点:机翼上密密麻麻,机身中部一片狼藉,而引擎和驾驶舱干干净净,几乎找不到一个弹孔。结论看起来显而易见——哪儿被打得最多,就往哪儿焊钢板。 统计学
月底还差 3000 块还信用卡。你满脑子都是这 3000 块:能跟谁借、能不能套现、下个月怎么办。领导布置新项目,你无心听;孩子问一道数学题,你烦躁地打发走;健身、学习、理财规划,全部靠后。等你终于拆东墙补西墙挺过这个月,下个月又来了,而且
你和老同学多年后重逢,聊起当年班主任”偏心某个同学”的往事。你记得清清楚楚:那次比赛老师故意没让你上场。老同学却一脸茫然:”有这回事?我记得是那位同学自己主动让给你的。”你俩争论到脸红,谁也不信谁。 你们中间一定有一个记错了吗?不一定——更
论文周五截止,周一开始你就知道该写了。你坐下来,打开文档,标题敲了两行,突然觉得”好烦、好难、好没头绪”——于是你顺手点开短视频,”就看十分钟缓缓”。再看表,凌晨一点,论文还是那两行标题。第二天你顶着黑眼圈通宵赶工,边写边发誓”下次一定提前
周六晚上九点,程序员阿杰打开编辑器准备”改个 bug 就睡”。等他再抬头看时间,已经是凌晨两点半——电脑上多出了三百行重构后的代码,桌上那杯咖啡早已凉透,中间五个多小时他完全没想起”现在几点了””我该睡觉了”。他不觉得自己在”加班”,甚至不
晚上八点,某在线客服小李刚被第 37 个顾客骂完”你们就是骗子”。他深吸一口气,打出一行字:”亲,非常抱歉给您带来不好的体验,这边已经为您加急处理啦~”,末尾还不忘带一个笑脸符号。挂断后,他盯着屏幕发了十秒钟呆,然后默默打开下一个对话框。这
你本来对自己的生活挺满意——工作稳定、房贷还得上、周末能看场电影。直到某天刷到老同学的朋友圈:他在大厂升了总监,晒了新车的钥匙,配文”五年,终于对得起自己的努力”。你放下手机,突然觉得手里的电影票不香了,甚至开始怀疑自己这五年”是不是白活了
GT7 的变速箱调校页面里有一挡、二挡直到最高挡的齿比,还有一个看起来独立的“最终传动比”。这些数字并不是单纯的加速与极速滑块,而是在描述发动机转速如何经过两级传动,转换成驱动轮的转速与扭矩。 理解变速箱只需要先抓住一个核心:**齿轮不会凭
商场门口,一个穿玩偶服的人拦住你,递上一朵花:”先生,为山区儿童捐 1 块钱吧?”你摆手要走,他又补了一句:”那……您扫一下码登记个名字也行,不捐钱。”你想了想,登记个名字不算什么,于是签了。五分钟后再见他,他笑脸相迎:”先生您看,您刚才已
你在直播间冲动下单了一台降噪耳机,试戴一天,发现降噪效果没有想象中好,心里隐约闪过”要不退了吧”。就在你犹豫的当口,朋友说:”正好我也想买,你要是不想要 400 块卖给我?”你上一秒还在嫌弃它的声音表现,这一刻却几乎脱口而出:”400?这可
你月薪 8000,拿到手的那天,你在心里默默把它分成了几份——房租 2500,吃饭 1500,交通 500,剩下 3500”日常花销”,每一块都花得小心翼翼。可是同一周,你在路边捡到 100 块钱——大概率的下场是:你走进便利店,买了一杯平
周一早上,茶水间里四个同事吐槽新颁布的考勤制度。你本来只觉得”有点烦,但也能接受”,在心里给它打 5 分。第一个人说”这制度根本没考虑我们项目组弹性办公的需求”,你点头,升到 6 分;第二个人补了一句”听说隔壁组已经有人因为这制度要离职了”
你站在一堵干净的墙前,手里攥着一张用过的纸巾。四下无人,你犹豫了一下,还是攥着它走了五十米去找垃圾桶。第二天,同一堵墙上被人喷了一行涂鸦,墙根还散着几个烟头和零食袋。你再次路过,这次你甚至没犹豫——纸巾随手就扔在了墙根。 墙还是那堵墙,你也
团建时教练把你们随机分成红队和蓝队,做了三小时游戏。结束时教练说”两队交换一名队员”,你心里一紧——把谁换走都舍不得,那三个人你一小时前还不认识。晚上聚餐,红队和蓝队的人自动分开坐,聊起下午的胜负,你发现自己会替红队找补:”我们那局是运气差
面试官低头看了一眼你的简历——毕业院校、上一家公司、一张证件照——大概三十秒。然后你走进来,讲了二十分钟,回答流利、逻辑清晰,但他心里那杆秤,早在你开口前就已经定好了大半:简历漂亮,你说的每句话都在”印证”他遇到了一位人才;简历普通,你同样
把一只跳蚤放进玻璃罐,盖上盖子,它每次跳起都撞到盖子。几天后拿掉盖子,跳蚤依然只跳到原来的高度——盖子已经不在了,但它不再试更高的那一跳。 人也是一样:一个被裁员后投了五十份简历全部石沉大海的求职者,当猎头带着一个真正匹配的机会找上门时,他
GT7 的调教不是把“更硬、更低、更多下压力”同时拉满,而是在轮胎、空气动力、机械抓地、动力输出和比赛策略之间分配预算。真正有效的设定,必须回答三个问题:车辆在哪个阶段失衡、赛道主要奖励什么、轮胎与燃油能否把速度带到终点。 本文先建立一套按
一趟旅行,你玩了七天,六天半都阳光明媚,可最后一天飞机延误、行李丢失、在机场坐了一整夜——多年后你回忆起来,脱口而出的是”那趟倒霉的旅行”,那六天半的好心情仿佛从未存在。反过来,一场演唱会你排了三小时队、淋了雨、站得腰酸背痛,但散场前最后一
这三件事看起来毫无关系: 办公楼电梯从 4 台变成 3 台(坏了一台在维修),早高峰拥堵暴涨,好几次挤不上去; 双休变成单休,只少”一天”,体感却远不止少一天; 同样是 1 万元意外开销,对有的人是小事,对有的人是借债的开始。 但它们背
同一件 999 元的夹克,摆在”原价 1999 元,五折”的货架上,和你偶然路过小店看到墙上直接标着”999 元”,你的感觉完全不同。前者你觉得自己”捡了个大便宜”,后者你只觉得”有点贵”——夹克没变,价格没变,变的只是你先看到了哪个数字。
渲染技术不是一条线,而是多条线并行演进:光照、GI、反射、AO、阴影、抗锯齿……每一条都被”硬件能力、美术流程、标准化需求”推着走,最终收敛成今天各引擎里那套熟悉的组合。 这篇把游戏行业常用的渲染技术按维度整理成演进链——每条链给出”从哪来
这个月你表现平平,老板把你叫到办公室,两个方案摆在面前:A,给你加薪 500 元;B,这个月绩效扣 500 元。加薪 500 你只会淡淡说句”谢谢老板”,但要是告诉你”绩效要被扣 500”,你恐怕当场就坐不住了。 同样是 500 元,一个让
三件事看起来毫无关系: 有条不紊地忙了一天,晚上反而不觉得累,状态还算在线; 反而是完全空闲的一天,躺着刷了半天手机,晚上说不出的疲惫; 游戏开局带着任务系统时很沉浸,主线做完之后,连支线都不想碰,总觉得少了点什么。 但它们背后是同一套
RTGI(Ray Traced Global Illumination,光线追踪全局光照)是 UE4 时代(4.25 引入)的纯硬件光追 GI 方案:用 GPU 的光追核心沿光线方向求交,把间接漫反射”真的算出来”,再靠降噪收敛成稳定画面。
APV(Adaptive Probe Volumes,自适应探针体积,常简称”体积探针”)是 Unity 6 正式化的烘焙 GI 方案,URP 和 HDRP 都支持,这篇以 URP 为主。它是 Unity 放弃 Enlighten 之后选定
「悬疑」在豆瓣上是一个很特别的标签。它不像科幻、动画那样有明显的边界,几乎所有带谜团的故事——心理惊悚、本格推理、高概念反转、犯罪侦破——都会被贴上这张标签,结果就是你在任意一个综合榜单里翻到的悬疑片,往往风格差异极大。 如果你喜欢的是《致
豆瓣电影 Top 250 很适合补经典,但它也有一个天然特点:一部新电影必须积累足够多的评价,并在较长时间里保持高分,才有机会进入榜单。因此,当我们想找近十年的好电影时,原榜单里大量经过时间检验的老片,反而会让新片显得很稀少。 这份榜单把时
产品评审会上,你明显看到方案里有个致命漏洞——页面的主按钮会把用户带回登录页。但全场 8 个人都点头说”没问题,可以上”,还有人补充”这个交互挺顺的”。轮到你发言时,你张了张嘴,最后说的是:”我也没什么意见。”散会后你越想越不对,却已经没人
第一次接触音乐的人,很容易从流派开始:蓝调、爵士、乡村、摇滚,下面还能继续分出三角洲蓝调、比波普、朋克、金属、独立摇滚。每种音乐都有相对清楚的声音特征、社会背景和继承关系。 美术看起来也应该有一张类似的地图:古典主义、浪漫主义、印象派、立体
上一篇文章梳理了古典主义、印象派、立体主义、抽象艺术等美术流派。来到电子游戏,分类会再次变得混乱:有人把“二次元”和“赛博朋克”并列,有人把“PBR”和“卡通风”当成对立面,也有人把低多边形、独立游戏、治愈系和手绘风混在同一张表里。 这些词
一个刚拿到驾照的司机,三个月内自我感觉”我是这条街最快的车神”,变道不打灯、超速有理;反而开了五年车的老司机,越开越慢、越开越小心,还总说”我技术一般”。车还是那辆车,人还是那个人,开得越久,越不敢说自己会开。 这就是达克效应(Dunnin
有人在公共场所突然倒下。你注意到了,周围几个人也抬起头,但没人立即行动。你开始想:是不是没有那么严重?旁边的人是不是更懂?也许已经有人联系工作人员了? 旁观者效应(Bystander Effect)关注的是,在某些情境中,其他人在场会怎样影
全局光照(Global Illumination,GI)是跨引擎比较时最容易吵起来的话题。UE 用户觉得 Lumen 之后这事已经解决了,Unity 用户觉得 APV 的质量和可调性更好,而两边的讨论经常不在同一个层面上——有人说的是间接光
几件看起来矛盾、却每天都在发生的事: 朋友圈立了 flag”再也不熬夜”,当晚又刷手机到凌晨三点,上床时想的却不是”我食言了”,而是”今晚情况特殊,明天一定早睡”; 朋友都说”他不适合你”,你心里其实有数,却反而更维护他:”他只是不擅长表
电影看了一半已经觉得无聊,却因为买了票而不肯离场;项目连续几次没达到预期,却因为已经投入三年而继续追加;课程不适合自己,却为了“学费不能白交”占用更多时间。 这些局面的共同问题,是过去无法收回的投入,正在替未来的选择投票。沉没成本谬误(Su
将工作简单分为技术型和服务型,很快便会遇到难以归类的情况。医生既依靠专业技术,也提供服务和照护;建筑师同时处理技术、创造、协调与风险。职业名称并不能完整反映一项工作的日常内容。 “技术型”和“服务型”是常见答案,但它们并不在同一个维度上。技
程序员开发 Roguelike 时,往往会率先研究地图生成、寻路和视野算法。这些问题固然重要,却通常不是项目失败的首要原因。更常见的情况是开发范围持续膨胀,或者经过长期制作,仍无法明确一局游戏的主要乐趣。 这篇从制作角度整理开发顺序。技术方
我见过几次类似的情况:劝过、陪过、道理也讲过,对方还是不动;等旁边的人不再使劲,他反而自己开始调整。下面这些心理学概念不能解释所有关系,但放在一起,至少能说明“越劝越不改”为什么并不罕见。 核心机制:自我决定理论(Self-Determin
一种颇具吸引力的 Shader 降级方案是:先用路径追踪、多层 PBR 和全局光照生成高质量结果,再以这些结果训练小型模型。运行时只保留模型权重和推理代码,即使展开后是一面难以阅读的数字墙,只要能在低端设备上运行并接近原始画面,仍具有实际价
项目从 Unity 2022.3(URP 14)升级到 Unity 6(URP 17)后,自定义 ScriptableRendererFeature 可能不再显示,或出现资源访问错误。主要原因是渲染 Pass 的入口从 Execute()
日常观察云层时,人们常用“鱼鳞状”或“将要下雨”一类经验描述。现代云分类系统只有两百多年历史,其内容也不只是为不同云形分别命名。 1. 在云图集出现之前19 世纪以前,云没有统一的名字。画家画云凭感觉,水手看云凭经验,农民望云凭口耳相传的谚
排线(Hatching)是用紧密排列的平行线来表现明暗、质感和体积的素描技法。交叉排线(Cross-Hatching)则是在此基础上叠加不同方向的线层,以获得更丰富的调子层次。 排线如今常被视为素描基本功,但它的形成与早期复制技术关系密切。
技术美术(Technical Artist,TA)这个岗位横跨美术与程序:既要能判断一张图的明暗结构和色彩关系对不对,也要能读懂渲染管线里某个 Pass 到底在做什么。两个方向各自都有成熟的学习体系,麻烦的是它们交叉的部分没人替你整理——教
做技术美术的日常里,有一半时间不是在「写」,而是在「找」:找一组能覆盖各种材质特性的测试模型来验证导入器,找一张真实世界的反射率数据来校准材质,找一套能批量下载 HDRI 的工具。这类资源单独看都不复杂,但散落在几十个仓库和站点里,每次要重
Electron、Tauri、Flutter 和 React Native 都能用于跨平台桌面开发,但它们复用的技术层并不相同:Electron 和 Tauri 复用 Web 前端,Flutter 复用自绘 UI,React Native
许多表达困难并非源于缺少想法,而是想法出现时尚未形成语言。一个人可能已经察觉方案存在问题、气氛有所变化,或者事件背后还有另一层动机,开口时却只能说出“感觉不太对”。 这种整体判断像一张低分辨率的图。要让别人也看到它,还得补出边缘、材质和光源
RenderGraph(渲染图)将一帧中的 Pass 与资源读写关系显式记录下来,使渲染管线可以在执行前分析整帧任务。 传统 SRP 写法里,ScriptableRenderPass 往往在执行阶段直接申请临时 RT、设置 RenderTa
Unity 应用通过 Xcode 安装到真机后,可以使用 Instruments 分析 CPU、内存、GPU、线程和能耗。它会将可复现的操作记录为时间线,用于定位卡顿区间、线程负载、内存增长、GPU Pass 开销,以及温度或能耗导致的降频
大模型最初以对话产品进入大众视野:用户提出问题,模型生成文字。随着代码生成、图像理解和工具调用逐渐成熟,“聊天机器人”已经不足以概括它的能力边界。 这些能力可以分为三个层次: 对话模型:给出答案。 多模态模型:理解并生成不同形式的内容。
Unity Jobs 和 Burst 经常配合使用,但两者解决的问题不同: Jobs:把工作拆开,调度到多个CPU核心上并行执行。 Burst:把一部分C#编译成高性能Native机器码,并进行SIMD等优化。 Jobs 并不必然提高性
ALU、SIMD、Warp/Wave 和 half 精度分别描述 GPU 的执行电路、并行方式、线程调度单位与数据精度。它们属于不同层级,不能由某一个参数直接推导 GPU 的实际性能。 各概念的基本关系如下: ALU:真正执行数学
客户端 TA 岗位通常同时涉及 Unity URP/HDRP 管线、Shader 效果、性能分析、工具插件和美术工作流。复习时不仅要掌握 Shader 语法,还需要将这些知识组织成可以落地的技术支持体系。 复习目标包括: 能讲清
Shader 中出现 if 并不代表一定产生明显开销。分支成本主要取决于同一个 GPU 执行组中的线程是否选择了不同路径。 如果整个执行组都进入同一个分支,动态分支反而可以跳过大量无用计算;如果组内线程分别进入不同分支,就会产生线程发散(D
记录一下YCT里GPUDriven 草地渲染实现。 1.静态数据烘焙使用地形均匀网格Mesh和美术画的草地Mask,生成草地的分布数据。 方法是遍历Mesh的三角形,用三角形UV去采样Mask,如果三个顶点都在Mask上是处于草地分布的,就
本文记录对SRP自定义管线的开发改造。 基于RenderGraph的基础Pass PCSS软阴影 TiledBaseForward+光照
本文记录对URP延迟管线的开发改造。 GBufferShader HBAO HIZ-Build SSAO SSGI SSR TAA ContactShadow
SSAO的进化版。 不再是通过对比深度来判断是否遮挡,而是寻找每个方向上的地平线高度。 原理基础GI是一个几何点从旁边所有角度的光照和。HBAO就是从几何点往旁边和方向去计算遮蔽的过程,通过简化方向为8个或者16个,结果贴合GI的原理。
原理基础SSR需要ColorTexture和DepthTexture。 视角空间的SSR的大概步骤:1、屏幕空间坐标——>ViewPos2、ViewPos获取ViewDir和ViewNormal3、ViewDir和ViewNormal
记录BongoCat的自动开箱。 BongoCat的dll没有加密混淆,作者也说代码可见,可以自己修改。 使用反编译工具dnSpy,打开游戏目录的Assembly-CSharp.dll。 然后修改dll里对应的代码。 修改完保存dll替换。
UE里默认不支持多Pass,项目里一般都会需要这个功能。 记录一下一种实现思路。 效果视频: StaticMesh多Pass实现主要是两个方面,一个是材质管理,另一个是把多Pass加入渲染流程中。 材质管理首先需要在UStaticMe
大佬们的文章链接参考: https://zhuanlan.zhihu.com/p/666213716 https://zhuanlan.zhihu.com/p/100748588 UE的DeferredDecalUE的延迟贴花有两种版本,一
这篇记一下ShadowMap阴影的技术。 1.ShadowMap相关ShadowMap的原理从Light的方向渲染场景的深度图,因为具有遮挡关系,所以能做阴影用。https://zhuanlan.zhihu.com/p/384446688
这篇需要常复习。 1.坐标系笛卡尔坐标系2D 坐标系 3D 坐标系1.左手坐标系Unity的左手坐标系,y上z前x右 UE的左手坐标系,z上y右x前,相当于untiy的坐标系翻了一下,但仍然是左手。 2.右手坐标系y上z后x右
已经在UE4.27 添加了 有两种, 一种是蓝图调用的GlobalShader Draw调用。 另一种是渲染线程过程中加了一步,可以做个类似后处理的那种。 记录第一种蓝图调用的这种,需要的所有东西: 1.C++的Shader结构Shader
常复习篇章。 渲染 空间转换过程VertShaderObject模型空间开始 ——(UNITY_MATTIX_M)——>World空间 ——(UNITY_MATTIX_V)——>View视角空间 ——(UNITY_MATRIX_
1.什么是PSO?PSO(Pipeline State Object)是现代图形API(DX12、Vulkan、Metal)提出的新概念,以前的API设置VS、Rasterizer、PS、BlendState这些状态时,需要一个一个调用设置
1.UE的DistanceField距离场的生成,有MeshDistanceField和GlobalDistanceField UE的主要应用是DFShadow、DFAO、材质DistanceFieldToNearest https://d
连接到PS5之后,可以通过Razor GPU For PS5,截帧分析每个DrawCall的具体消耗。 1.打开RazorGPUForPS5,点击Capture——GPU Capture截帧这个工具截出来没有RenderDoc那样对Pass
UE4里GPUScene相关的梳理。 1.引擎传输Primitive数据到GPU的方式什么是PrimitiveData? PrimitiveData是UPrimitiveComponent级别的几何数据,包括LocalToWorldMatr
虚幻自定义MeshPass在此总结一下。 基于UE5.1 Github版本 UE5 AddOutlinePass https://zhuanlan.zhihu.com/p/597864516 UE4 AddOutlinePass 材质实例参
虚幻创建插件在此总结一下。 基于UE5.1 Github版本 在项目里创建插件 有一个.Build.cs文件,一个插件Module的Plugin.cpp文件。
虚幻自定义ShadingModel在此总结一下。 基于UE5.1 Github版本 什么是ShadingModel?在UE的材质编辑器里,材质有ShadingModel可以选择,基本上有Unlit、DefalutLit、Subsurfa
虚幻自定义MeshComponent在此总结一下。 基于UE5.1 Github版本 1.几个比较重要的概念UPrimitiveComponent1234class ENGINE_API UPrimitiveComponent :
UE的Mesh关于LOD的切换是用的屏占比ScreenSize,一般是美术设置几个屏占比的参数,本地看着差不多就行了。 下面研究下这个屏占比在引擎里是怎么运作的,方便理解和优化功能。 Q:这个ScreenSize是怎么生效的?A:Scree
修改基于UE4.27,实际代码因为UE5重构了,还没写UE5版本。 记录一下DFShadow随Cluster裁剪更新的修改过程。(上次UE直播好像说5.3重构了GPUScene相关) 遇到的问题:植被Instance的DistanceFie
1.PreZ带来的优势,同时会有哪些消耗?Pre-Z(Depth Prepass)先绘制深度,后续 Base Pass / GBuffer Pass 再使用 ZTest Equal 或 ZTest LEqual。提前建立的深度缓冲
Unity项目的优化思路和实践经验在此总结一下。 1.性能检测要优化首先需要分析现有的性能瓶颈,获取性能数据,根据情况决定优化什么,如何优化。性能分析的工具和方法: -检测工具:Profiler、SnapdragonProfiler、Int
本文对URP使用的这段时间的一些理解和总结。从知乎转移:URP管线架构学习总结 1.URP渲染管线的架构图理解一个系统设计比较重要的就是类图了。 2.各个类的一些作用和使用(1)UniversalRenderPipelineAsset本质
问题背景为什么直接一条流水线会有性能瓶颈?在IMR里,GPU流水线是: 提交三角形——>VS——>Raster——>FS——>输出合并 没有全局信息、没有延迟、完全按照顺序执行。 GPU在执行FS的时候,并不知道像素
Temporal Anti-Aliasing(TAA,时域抗锯齿)通过跨帧累积样本,提高每个像素的有效采样数量。它能以较低的单帧成本抑制几何边缘和着色闪烁,因此成为实时渲染中常见的抗锯齿方案。 跨帧复用也会引入 Ghosting、Bleed
一个能自己转的太阳系。
渲染管线中,光照计算阶段的组织方式决定了渲染器的整体架构。前向渲染(Forward)和延迟渲染(Deferred)是两种最主流的方案,它们各自衍生出一系列变体。 下文从光源裁减、G-Buffer、带宽和透明渲染等方面比较两类方案及其常见变体
SRP Batcher 是 Unity SRP 中用于降低 CPU 渲染提交开销的机制。本文整理其数据布局、适用条件,以及与 GPU Instancing 的区别。
搬运知乎之前写的文章链接:(知乎把GIF转换成了MP4,不知道怎么显示在这里,就先这样吧) https://zhuanlan.zhihu.com/p/143261544
其实渲染里没有真正的透明物体,透明效果是通过颜色的Blend模仿到的。 正常的透明渲染需要一个一个前后混合,所以半透明是通过前向渲染。 透明的渲染混合指令Blend 原因子 目标因子 Blend 原RGB因子 目标RGB因
学 A* 那阵子,光看书上写 open list、close list,看完还是一头雾水,索性自己用 Unity 写了个 Demo,一边写一边看算法到底是怎么找路的。做完发现这东西用来演示再合适不过——地图上随机生成一堆墙,点个地方,角色就
一直觉得音乐可视化是个很迷人的东西——声音本来就是看不见的,如果能让它驱动画面,跟着节奏一起跳,那看视频和听歌就是两回事了。于是用 Unity 做了这个 AudioVisibleDemo,把一段音乐变成了能看的东西。
PBR(Physically Based Rendering,基于物理的渲染)不是某一个固定 Shader,而是一套尽量遵循真实光照规律的材质与渲染方法。 它的目标不是绝对还原现实,而是让材质满足一些稳定的物理约束: 同一份材质换到不同光
渲染管线(Rendering Pipeline)描述的是:一组场景数据,如何一步步变成屏幕上的像素。 传统实时渲染管线通常可以从概念上分成三个阶段: 应用阶段(Application Stage):CPU 决定“画什么、以什么顺序画”。
本文在原有“引擎知识地图”的基础上补充概念说明与延伸资料。星级沿用原有标记,从基础知识(⭐)到前沿或引擎级内容(⭐⭐⭐⭐),用于表示建议的学习顺序,而非技术价值的高低。 通用参考(贯穿全文,各节不再重复) Real-Time Rende
卡通渲染的各个要素。这个已经被研究的太多了,贴几个别人的链接吧。 脸部SDF阴影: 🔗脸部 SDF 阴影zhuanlan.zhihu.com 博主2173关于卡通渲染的总结: 🔗2173:卡通渲染总结zhuanlan.zhihu.c
光线步进(Ray Marching)是我在 Shader 里最喜欢的玩法:不用模型、不用贴图,几行距离函数就能在现场“长”出一个世界。 这篇把自己这些年踩过的点整理一遍:从为什么要“走”而不是“算”,到距离场的性质、软阴影/AO、
法线贴图(Normal Map)用纹理保存表面法线方向,在不增加模型顶点和三角形的情况下,让光照表现出凹凸、刻痕、褶皱等细节。 它改变的是参与光照计算的法线,而不是真正修改几何体: 能改变明暗、高光和反射的细节。 不能改变模型轮廓。 不能