Loy-经济学入门23:凯恩斯与哈耶克,为什么两派都有证据
1929 年之后的那几年,出现了一个让当时的主流经济学解释不了的场面:工厂还在,机器还在,工人还在,钱也在银行账上,但生产停了一半。物价在跌,工资在跌,按教科书说的,跌到一定程度就该有人开工了,可它没有发生。美国失业率一度接近四分之一。 1
MAKE THINGS · WRITE THINGSCURRENT FOCUS
用鲜明模块整理游戏开发、AI、视觉设计与生活中的好奇心。每篇文章,都是一次值得留下的探索。记录技术、视觉和创作过程中的连接。
LATEST NOTES
从最新记录开始,或按左侧主题筛选。
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 万。买家的回答很平静:网上挂多少是
先说一件几乎不需要论证的事:没有人会自己在小区门口立一排路灯,然后向路过的每个人收钱;也没有人会在公海上围一片水面,说这里的鱼是我养的,请大家别捞。 这两件事看起来没有关系。一个是没人愿意出钱,一个是人人都抢着用。但经济学把它们放进同一张表
门口有棵树的房子,通常比没有的贵一点。这棵树是上一任房主种的、市政种的,还是看房那天恰好路过看见的,对价格的影响差不多。可一旦要有人真的掏钱去种、去修剪、去承担它拱坏地砖的麻烦,问题就出现了:这笔钱该谁出。 种树的人得到阴凉、窗外的一点绿色
一笔买卖成交的时候,买卖双方多半都觉得自己占了便宜。卖家赚到了钱,买家拿到了东西,两个人各自走开,谁也没亏。这句话听起来像场面话,但它是经济学里少数能被严格写下来的结论之一:自愿交易创造价值,而且创造出来的这部分价值,在成交之前并不存在于任
同一条街上两家店,进货价一起涨了两成:一家第二天客人少了一半,另一家该卖多少还是多少。老板通常说”我这儿的客人认我”,但真正起作用的往往不是感情,而是顾客手里有没有别的去处——第一家隔两百米还有三家同类,第二家是这片唯一一家。 经济学给”有
先说一件几乎所有人都同意的事:房租太贵。再说一件几乎所有人都支持的政策:规定房租不许超过某个数。两件都很合理的事凑在一起,会发生什么? 过去一百年,经济学家反复算这同一道题,答案相当一致,而且在政治上不怎么讨喜。 这是「经济学入门」系列的第
一杯咖啡不要钱,条件是你排两小时队。队伍绕了半个商场,里面的人大多在算同一笔账:反正不花钱,排就排了。 但两小时不是零。它可以是写完一版方案、睡一觉、多看二十页书,也可以干脆去加两小时班。这笔没有收据的支出,才是那杯咖啡真正的价格。收银台收
这是一套给非经济学专业的人写的基础读物,二十三篇,从「成本是你放弃的那个东西」一路走到「凯恩斯与哈耶克为什么两派都有证据」。每篇独立成文,四千五到六千五百字,能单独读;按顺序读则是一条线:先学会算自己的账,再看懂价格信号怎么传不动,然后是企
“基模”这个词在中文 AI 语境里出现频率很高,但经常混着两件事:一是 foundation model,指大规模预训练、能迁移到大量下游任务的通用底座;二是 base model,指相对于 instruct / chat 版本、
「康波」是中文互联网上少有的、从学术论文一路降格成算命词的术语。它的全称是康德拉季耶夫长波(Kondratieff wave),指资本主义经济中约五十到六十年一轮的长期起伏。在券商研报和短视频里,它被压缩成一句话——「人生发财靠康波」:赶上
这两年「AI 建模」被当成一个东西来讲,但真正落到项目里会发现,市面上叫这个名字的至少有四类完全不同的技术:让大模型写 Blender 脚本、从图或文字直接生成网格、从照片视频重建、以及参数化 CAD。 它们的差别不在模型参数量,而在于交付
中国历史最容易记混的不是人物,是地理。同一个地名在不同朝代指向不同的城:今天的西安做过镐京、长安、大兴;今天的南京做过建业、建康、应天;北京在成为帝都之前只是辽的陪都。只看朝代年表,你记住的是「唐 → 宋」;只有把都城和时间叠在一起,才会看
今天街上教的三分法——“把主体放在九宫格交点上”——是二十世纪摄影教学加上去的;它 1797 年被写下来的原意完全是另一件事:不要把画面切成对半,要用 2:1 这种不等的比例来分配天空与地面、明与暗。而我把 9 幅公认的名作逐个量了一遍,落
补色(Complementary Color)不是一个固定的颜料配方,而是一条生理机制的结果:眼睛用”对立”的方式编码颜色(红—绿、蓝—黄、明—暗),当某一种信号被持续刺激后疲劳,再看白墙时它就会”反向”溢出,你看到的那个颜色,就是它的补色
空气透视(Aerial Perspective / Atmospheric Perspective)指的是:物体并不会因为”远”而自动变小变模糊,它之所以看起来又淡又蓝又没细节,是因为你和它之间的空气把光散射掉了——距离越远,中间
同时对比(Simultaneous Contrast)指的是:一个颜色的”样子”不是它自己的属性,而是它和周围颜色比较出来的结果——同一块灰放在深底上会发亮,放在浅底上会发暗;同一块蓝挨着橙会显出更强的冷,挨着绿则会往青紫偏。 一句话记忆:
最近用 ComfyUI 跑了一批游戏资产相关的生图测试,主要分成三类:原画、纹理和数据图。比起单纯看图片是否好看,我更关心它们距离实际使用还有多远,以及后续需要补多少工作。 目前我的结论是:原画能力 > 纹理图能力 > 数据图能
明暗对照法(Chiaroscuro)不是”把画面画暗”,而是用极端的光影反差把形体从黑暗中”雕刻”出来,并同时决定观众的眼睛先看哪里——它起源于文艺复兴对”体积感”的追求,成熟于卡拉瓦乔式的全黑背景强光,延续到伦勃朗的心理化布光,今天活在你
美式漫画(American Comics)最让人过目不忘的,是它那股”扑面而来”的视觉冲击力:粗重有力的墨线、高饱和的鲜艳色彩、肌肉贲张的动态,还有——那些密密麻麻的小圆点。许多读者第一次注意到这些圆点时会好奇:它们是印刷失误吗?为什么漫画
折腾电脑这么多年,真正留下来常驻的,反而不是那些大型软件,而是一批「小工具」:单个功能不复杂,装上就用,平时几乎感觉不到它们的存在,但一旦缺了就浑身难受。这些年我把尽量多的常用软件换成了开源(Open Source,源代码公开)方案,一方面
WebGL 自 2011 年由 Khronos 推出,把 OpenGL ES 搬进浏览器,如今几乎所有网页 3D 内容——电商展示、数据可视化、营销互动页、轻量游戏——都跑在它上面。十多年里,围绕这条 API 形成了三类引擎:为 Web 而
月底还差 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
地铁车厢里有人突然晕倒。你第一反应是看向周围——其他人也正看向你。每个人都想”会有人处理的”,每个人都以为别人会比自己先动,于是几秒钟过去了,没人动。可如果这节车厢里只有你一个乘客,你几乎肯定会立刻起身。 同一件事、同一个人,人多人少,决定
全局光照(Global Illumination,GI)是跨引擎比较时最容易吵起来的话题。UE 用户觉得 Lumen 之后这事已经解决了,Unity 用户觉得 APV 的质量和可调性更好,而两边的讨论经常不在同一个层面上——有人说的是间接光
几件看起来矛盾、却每天都在发生的事: 朋友圈立了 flag”再也不熬夜”,当晚又刷手机到凌晨三点,上床时想的却不是”我食言了”,而是”今晚情况特殊,明天一定早睡”; 朋友都说”他不适合你”,你心里其实有数,却反而更维护他:”他只是不擅长表
三件事看起来毫无关系: 在公交站等了半小时车还没来,明明打车也就十几分钟的事,却因为”都等了半小时了”继续干等; 一个做了三年的项目眼看要黄,管理层还在追加预算,理由是”已经投了这么多”; 一段处了五年、双方都心知肚明不合适的感情,却因为
将工作简单分为技术型和服务型,很快便会遇到难以归类的情况。医生既依靠专业技术,也提供服务和照护;建筑师同时处理技术、创造、协调与风险。职业名称并不能完整反映一项工作的日常内容。 “技术型”和“服务型”是常见答案,但它们并不在同一个维度上。技
程序员开发 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
虚幻创建插件在此总结一下。 基于UE5.1 Github版本 在项目里创建插件 有一个.Build.cs文件,一个插件Module的Plugin.cpp文件。
虚幻自定义MeshPass在此总结一下。 基于UE5.1 Github版本 UE5 AddOutlinePass https://zhuanlan.zhihu.com/p/597864516 UE4 AddOutlinePass 材质实例参
虚幻自定义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)用纹理保存表面法线方向,在不增加模型顶点和三角形的情况下,让光照表现出凹凸、刻痕、褶皱等细节。 它改变的是参与光照计算的法线,而不是真正修改几何体: 能改变明暗、高光和反射的细节。 不能改变模型轮廓。 不能