核心内容摘要
使用工具Postman快速导出python接口测试脚本
纹ç�†é‡‡æ ·
é‡‡æ ·å™¨
纹ç�†é‡‡æ ·é‡‡æ ·å°±æ˜¯GPU为了给å±�幕上的一个åƒ�ç´ ä¸Šè‰²,å�»çº¹ç�†è´´å›¾é‡ŒæŸ¥å�–并计算对应颜色 / æ•°æ�®çš„æ“�作,一次查å�–计算就是一次 é‡‡æ ·,å¤šå¼ çº¹ç�†å°±æ˜¯å¤šæ¬¡é‡‡æ ·a.纹ç�†è´´å›¾ ç»™3D模å�‹è´´çš„图(漫å��å°„ã€�法线ã€�高光图),æœ¬è´¨æ˜¯ä¸€å¼ å˜æ»¡é¢œè‰²/æ•°æ�®çš„åƒ�ç´ æ ¼å›¾ç‰‡,æ¯”å¦‚ä¸€å¼ 1024×1024的木纹图,就是1024×1024个å°�æ ¼å�,æ¯�ä¸ªæ ¼å�有自己的颜色值,è¿™å¼ å›¾å˜åœ¨GPU显å˜(仓库)里b.UVå��æ ‡ ç»™3D模å�‹è¡¨é�¢çš„æ¯�ä¸ªç‚¹éƒ½æ ‡äº†ä¸€ä¸ªçº¹ç�†è´´å›¾çš„地å�€,比如UV(
5,
0.
,就是纹ç�†è´´å›¾æ£ä¸é—´çš„那个åƒ�ç´ æ ¼,相当äº�模å�‹è¡¨ é�¢çš„点和纹ç�†è´´å›¾çš„åƒ�ç´ æ ¼å�šäº†ä¸€ä¸€ç»‘定 c.å±�幕åƒ�ç´ æ¸¸æˆ�ç”»é�¢æœ€ç»ˆæ˜¾ç¤ºåœ¨å±�幕上的一个个å°�点,比如1080På±�幕就是1920×1080个点,GPUçš„æ ¸å¿ƒå·¥ä½œä¹‹ä¸€,就是给æ¯�一个å±�幕åƒ� ç´ ç®—å‡ºæœ€ç»ˆè¦�显示的颜色
.é‡‡æ ·çš„å®Œæ•´æµ�程 å�‡è®¾ç�°åœ¨è¦�渲染å±�幕上的一个åƒ�ç´ (比如立方体表é�¢çš„一个å±�幕点),GPUè¦�给它上色,这个上色查数æ�®çš„è¿‡ç¨‹å°±æ˜¯ä¸€æ¬¡é‡‡æ ·,å…¨ 程对应工人å�–è´§ a.æ�¥ä»»åŠ¡:GPU拿到这个å±�幕åƒ�ç´ ,通过3D模å�‹çš„计算,得到这个åƒ�ç´ å¯¹åº”çš„æ¨¡å�‹è¡¨é�¢ç‚¹çš„UVå��æ ‡,比如UV(
5,
0.
,相当 äº�工人拿到了å�»ä»“库å�–货的具体地å�€b.å�»ä»“库å�–è´§(显å˜è¯»å�–):GPUæ ¹æ�®UVå��æ ‡,å�»æ˜¾å˜(仓库)里找到对应的纹ç�†è´´å›¾,定ä½�到该UVå��æ ‡å¯¹åº”çš„çº¹ç�†åƒ�ç´ æ ¼ç›¸å½“äº� 工人跑到仓库,按地å�€æ‰¾åˆ°å¯¹åº”的货物货æ�¶ c.验货/åŠ å·¥(æ�’值计算)-ç�†æƒ³æƒ…况:UVå��æ ‡åˆšå¥½ç²¾å‡†å¯¹åº”çº¹ç�†çš„一个åƒ�ç´ æ ¼,ç›´æ�¥å�–è¿™ä¸ªæ ¼å�的颜色就行(工人直æ�¥æ‹¿è´§æ�¶ä¸Šçš„è´§)-å®�际情况:模å�‹ç¼©æ”¾/旋转/拉伸å��,UV会å�˜å½¢,一个å±�幕åƒ�ç´ å�¯èƒ½å¯¹åº”纹ç�†çš„多个åƒ�ç´ æ ¼,或多个å±�幕åƒ�ç´ å¯¹åº”çº¹ç�†çš„一 个åƒ�ç´ æ ¼(比如把å°�纹ç�†è´´åˆ°å¤§æ¨¡å�‹ä¸Š,纹ç�†è¢«æ‹‰ä¼¸),这时GPU会å�šæ�’值计算,比如å�–å‘¨å›´å‡ ä¸ªçº¹ç�†åƒ�ç´ æ ¼çš„é¢œè‰²å¹³å�‡å€¼,å¾— 到一个平滑的颜色值,相当äº�工人å�‘ç�°è´§æ�¶ä¸Šçš„è´§ä¸�匹é…�,需è¦�æŠŠå‡ ä¸ªè´§æ‹¼ä¸€æ‹¼/åŠ å·¥ä¸€ä¸‹,æ‰�能得到能用的æˆ�å“� d.完æˆ�任务:GPU把计算好的颜色值赋值给这个å±�幕åƒ�ç´ â€”â€” å·¥äººæŠŠåŠ å·¥å¥½çš„è´§é€�到车间(GPU计算å�•å…ƒ),完æˆ�一次å�–è´§å¤šæ¬¡é‡‡æ ·çš„ä¾‹å� 如æ�œè¿™ä¸ªå±�幕åƒ�ç´ ä¸�ä»…è¦�漫å��射颜色,还è¦�法线信æ�¯,高光信æ�¯,就需è¦�3å¼ çº¹ç�†è´´å›¾(漫å��射图ã€�法线图ã€�高光图),æ¤æ—¶GPU è¦�给这个åƒ�ç´ ä¸Šè‰²,å°±è¦�按å�Œä¸€ä¸ªUVå��æ ‡,分别å�»3å¼ çº¹ç�†é‡Œå�„å�šä¸€æ¬¡æŸ¥å�– 计算相当äº�工人为了完æˆ�一个上色任务,è¦� è·‘3次仓库,å�–3次货,å�š3æ¬¡åŠ å·¥,自然比跑1次的开销大得多 而å±�å¹•ä¸Šæœ‰å‡ å��万甚至上百万个åƒ�ç´ ,æ¯�个åƒ�ç´ éƒ½è¦�å�šå¤šæ¬¡è¿™æ ·çš„æ“�作,GPU的工人就会ä¸�å�œè·‘仓库,显å˜å¸¦å®½(仓库到车间 çš„è¿�输通é�“)就会被å� 满,è¿™å°±æ˜¯é‡‡æ ·æ¬¡æ•°å¤šå¯¼è‡´å¼€é”€é«˜çš„æ ¸å¿ƒå�Ÿå›
é‡‡æ ·å™¨é‡‡æ ·å™¨(Sampler)是GPUä¸ä¸“门负责执行纹ç�†é‡‡æ ·æ“�作的专用硬件å�•å…ƒ 规则é…�置器,对应之å‰�的仓库比喻,é‡‡æ ·å™¨å°±æ˜¯ä»“ 库专å±�çš„å�–è´§å·¥äººåŠ å·¥å�°,这个工人å�ªå¹²æŒ‰UVå�–纹ç�†æ•°æ�® 按规则æ�’值/处ç�†è¿™ä¸€ä»¶äº‹
.é‡‡æ ·å™¨çš„ä¸¤ä¸ªä½œç”¨ é‡‡æ ·å™¨ä¸�å�ªæ˜¯æ— 脑干活的工人,还能按开å�‘è€…è®¾å®šçš„è§„åˆ™æ‰§è¡Œé‡‡æ ·,这两个作用缺一ä¸�å�¯ä¸”å��者是Unity/Shaderå¼€å�‘䏿ˆ‘ 们能å®�é™…é…�置的部分 a.硬件层é�¢:专å±�æ‰§è¡Œé‡‡æ ·çš„æ ¸å¿ƒæ“�作,全程负责纹ç�†é‡‡æ ·çš„ä¸¤å¤§æ ¸å¿ƒæ¥éª¤,替GPU通用å�•å…ƒçœ�算力-按Shaderä¼ å…¥çš„UVå��æ ‡,ä»�GPU显å˜ä¸ç²¾å‡†å®šä½�纹ç�†è´´å›¾çš„对应数æ�®,完æˆ�显å˜å¸¦å®½çš„高效读å�–(专用的读å�–通é�“)-对读å�–到的纹ç�†æ•°æ�®æ‰§è¡Œæ�’值/过滤计算,得到最终è¦�ä¼ ç»™ç‰‡å…ƒç�€è‰²å™¨çš„颜色/æ•°æ�® b.é…�置层é�¢:å®šä¹‰é‡‡æ ·çš„è¡Œä¸ºè§„åˆ™æˆ‘ä»¬åœ¨Unity/Shaderä¸è®¾ç½®çš„纹ç�†è¿‡æ»¤æ–¹å¼�ã€�寻å�€æ¨¡å¼�,æœ¬è´¨éƒ½æ˜¯ç»™é‡‡æ ·å™¨é…�置执行规则相当äº�ç»™å�–货工人定好æ€�么å�–,æ€� ä¹ˆåŠ å·¥çš„è§„çŸ©,å·¥äººä¼šä¸¥æ ¼æŒ‰è§„çŸ©å¹²æ´»,ä¸�å�Œè§„矩对应ä¸�å�Œçš„ç”»é�¢æ•ˆæ�œå’Œå¼€é”€ è¿™ä¹Ÿæ˜¯é‡‡æ ·å™¨é…�置器å±�性的体ç�°,Unity Shader䏿ˆ‘们定义的sampler2D,å…¶å®�就是纹ç�†è´´å›¾ç»‘å®šçš„é‡‡æ ·å™¨çš„ç»„å�ˆä½“,早期 GPU纹ç�†å’Œé‡‡æ ·å™¨æ˜¯åˆ†å¼€çš„,ç�°åœ¨ä¸ºäº†å¼€å�‘便æ�·å�ˆäºŒä¸ºä¸€,比如sampler2D_MainTex,就是把主纹ç�†å’Œå¯¹åº”çš„é‡‡æ ·å™¨ç»‘å®š,我 们在Inspectoré�¢æ�¿ç»™çº¹ç�†è®¾ç½®çš„过滤/寻å�€æ¨¡å¼�,æœ€ç»ˆéƒ½ä¼šä¼ ç»™è¿™ä¸ªé‡‡æ ·å™¨
.é‡‡æ ·å™¨çš„2ä¸ªæ ¸å¿ƒé…�置规则 è¿™ä¸¤ä¸ªè§„åˆ™æ˜¯é‡‡æ ·å™¨çš„æ ¸å¿ƒ,ç›´æ�¥å†³å®šé‡‡æ ·çš„ç”»é�¢æ•ˆæ�œå’Œè½»å¾®å¼€é”€å·®å¼‚,也是Unityä¸ç»™çº¹ç�†è®¾ç½®çš„关键å�‚æ•°,用之å‰�的类比 讲就是工人的æ“�作规矩a.过滤模å¼�(FilterMode):工人æ€�ä¹ˆåŠ å·¥çº¹ç�†æ•°æ�®,æ�’值规则 解决的是å±�幕åƒ�ç´ UV 和纹ç�†åƒ�ç´ ä¸�精准匹é…�的问题,比如纹ç�†è¢«æ‹‰ä¼¸/缩å°�,é‡‡æ ·å™¨æŒ‰æ¤è§„则å�šæ�’值计算分三ç§�æ ¸å¿ƒç±»å�‹-Point(点过滤):工人直æ�¥å�–UV最近的那个纹ç�†åƒ�ç´ ,ä¸�å�šä»»ä½•æ�’值,ç”»é�¢ä¼šå‡ºç�°åƒ�ç´ åŒ–,锯齿,但开销最ä½�-Linear(线性过滤):工人å�–UV周围4个纹ç�†åƒ�ç´ ,计算平å�‡å€¼ä½œä¸ºç»“æ�œ,ç”»é�¢å¹³æ»‘ã€�æ— é”¯é½¿,开销比Point略高,是Unity默认 的模å¼�,适å�ˆç»�大多数场景(漫å��å°„ã€�法线图ç‰)-Trilinear(三线性过滤):在Linear基础上,对纹ç�†çš„多级LOD(纹ç�†é‡‘å—å¡”)也å�šçº¿æ€§æ�’值 b.寻å�€æ¨¡å¼�(WrapMode):工人UV 超出纹ç�†èŒƒå›´æ—¶æ€�么处ç�†(边界规则)纹ç�†çš„UVå��æ ‡é»˜è®¤èŒƒå›´æ˜¯
,如æ�œShaderä¸è®¡ç®—çš„UV超出这个范围(比如UV
1.