chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

KiDoom:在電路板上玩《毀滅戰(zhàn)士》

KiCad ? 來源: KiCad ? 作者: KiCad ? 2025-11-27 11:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

wKgZO2knwjaAHXVhAA5aiCqT5JQ682.png

引言:當(dāng)“萬物皆可運行 DOOM”遇到極致創(chuàng)意

在技術(shù)圈,“萬物皆可運行 DOOM”是一個廣為流傳的梗,從計算器到數(shù)碼相機(jī),無數(shù)設(shè)備都被大神們成功移植了這款經(jīng)典游戲。但如果這個問題變得更瘋狂一些:如果游戲的墻壁是真實的電路板銅線,敵人是芯片封裝,會是怎樣一番景象?

答案就是 KiDoom 項目。它將 1993 年的經(jīng)典游戲《毀滅戰(zhàn)士》(DOOM)渲染在了一個專業(yè)的 PCB編輯器 KiCad 中。這個項目背后充滿了巧妙的技術(shù)構(gòu)思和令人驚訝的實現(xiàn)細(xì)節(jié),下文將為你揭示其中最有趣的五個事實。

-----------------------------------------------------------------------------

1. 核心理念:一場“無人問津”卻極致優(yōu)雅的技術(shù)炫技

KiDoom 并非為了解決任何實際問題,它的誕生源于一個純粹的好奇心和技術(shù)探索精神:“如果 DOOM 的墻壁是真實的 PCB 走線會怎樣?” 項目的創(chuàng)建者旨在回答一個根本沒人問過的問題,這本身就充滿了一種極客式的浪漫。

What if DOOM's walls were actual PCB traces? What if enemies were QFP-64 chips and health packs were SOT-23 transistors? KiDoom answers these questions nobody asked...

這種看似“無用”的創(chuàng)造,恰恰是技術(shù)社區(qū)創(chuàng)新精神和幽默感的最佳體現(xiàn)。它證明了最純粹的樂趣往往來自于探索技術(shù)的邊界,而非僅僅滿足實用需求。

2. 技術(shù)突破:從每秒 0.15 幀到可玩的關(guān)鍵轉(zhuǎn)變

項目最初的構(gòu)想是使用 PCB 焊盤來逐個像素地渲染游戲畫面,但這個思路很快被證明是行不通的。

  • 每幀像素數(shù): 320 x 200 = 64,000 個
  • 渲染時間: 64,000 個焊盤 × 每焊盤 0.1 毫秒 = 每幀 6.4 秒
  • 最終幀率: 0.15 FPS (完全不可玩)

真正的突破在于一個“頓悟時刻”:開發(fā)者意識到 DOOM 引擎內(nèi)部本身就是以矢量(線段)而非像素來計算可見幾何體的,它將這些數(shù)據(jù)存儲在drawsegs[]vissprites[]等內(nèi)部數(shù)組中。而 PCB 的銅走線恰好也是矢量數(shù)據(jù)。這個發(fā)現(xiàn)徹底改變了實現(xiàn)路徑,其渲染效率比像素掃描方案快了 200 到 500 倍。

  • 每幀線段數(shù): 約 100-300 條
  • 渲染時間: 約 200 條走線 × 每走線 0.1 毫秒 = 每幀 20 毫秒 (+ 刷新開銷)
  • 最終幀率: 10-25 FPS (足夠進(jìn)行基本游戲)

這個從像素到矢量的思維轉(zhuǎn)變,是整個項目得以從一個不可能的想法,變成一個可玩的技術(shù)演示的基石。

3. 最具創(chuàng)意的設(shè)計:用芯片封裝的復(fù)雜性來代表游戲角色

KiDoom 項目中最為精妙的設(shè)計,在于它建立了一套實體映射系統(tǒng):游戲中的不同實體(敵人、道具等)被渲染為不同復(fù)雜度的真實 PCB 元件封裝。

游戲角色 PCB 封裝 引腳數(shù) 示例
收藏品 SOT-23 3 醫(yī)療包、彈藥夾、鑰匙卡
裝飾物 SOIC-8 8 油桶、尸體、火炬
敵人 QFP-64 64 僵尸、惡魔、玩家

這種設(shè)計的巧妙之處在于,它創(chuàng)造了一種“任何 PCB 設(shè)計師都能直觀理解的視覺層級”。一個強(qiáng)大的霰彈槍手是一個復(fù)雜的 64 引腳芯片,而一個簡單的醫(yī)療包只是一個 3 引腳的晶體管。為了實現(xiàn)這個映射超過 150 種不同游戲?qū)嶓w的系統(tǒng),開發(fā)者必須深入 DOOM 的 C 語言源代碼進(jìn)行修改。挑戰(zhàn)在于,游戲原生的vissprite_t渲染結(jié)構(gòu)體中并不包含實體的類型信息。解決方案是直接對引擎進(jìn)行“外科手術(shù)”:通過修改r_defs.h文件為vissprite_t結(jié)構(gòu)體增加一個mobjtype字段,并在r_things.c文件的R_ProjectSprite()函數(shù)中捕獲thing->type,從而在渲染每一幀時都能精確知道每個實體的具體身份。

4. 架構(gòu)解密:它并非在 KiCad內(nèi)部運行 DOOM

一個常見的誤解是 KiDoom 讓 DOOM 運行在了 KiCad 內(nèi)部,但事實并非如此。在這個項目中,KiCad 只是作為“顯示器”或“渲染器”。真正的 DOOM 游戲引擎是作為一個獨立的 C 語言進(jìn)程在后臺運行的。

項目采用了一種“三模式渲染”架構(gòu),同時運行三個并行的可視化窗口:

  • SDL 窗口: 真正玩游戲的地方,顯示完整的 DOOM 畫面。
  • Python 線框窗口: 用于調(diào)試,顯示從游戲中提取出的矢量線條。
  • KiCad PCB 窗口: 項目的主角,顯示由銅走線構(gòu)成的墻壁和由元件封裝構(gòu)成的實體。

每一幀的數(shù)據(jù)都遵循一個清晰的流程:從 C 語言的 DOOM 引擎drawsegs[]vissprites[]數(shù)組中提取幾何數(shù)據(jù),通過 Unix 套接字序列化為 JSON 格式,再由 Python 腳本接收并解析,最終更新到 KiCad 的畫布上。這種清晰的架構(gòu)劃分,展現(xiàn)了項目并非一個簡單的腳本,而是一個經(jīng)過深思熟慮的復(fù)雜系統(tǒng)。而整個系統(tǒng)的性能瓶頸,也清晰地指向了 KiCad 的 Python API 調(diào)用pcbnew.Refresh(),這一步會消耗 30-50 毫秒,是幀率的主要限制因素。

5. 最終觀感:復(fù)古街機(jī)風(fēng)與現(xiàn)代工程工具的奇妙融合

KiDoom 的最終畫面既不像現(xiàn)代游戲的精細(xì)像素,也沒有復(fù)雜的紋理,而是一種獨特的線框風(fēng)格,仿佛是復(fù)古街機(jī)游戲與現(xiàn)代工程軟件的結(jié)合體。

Think "1982 vector arcade game meets 1993 FPS meets 2025 PCB editor."

畫面的關(guān)鍵視覺元素包括:

  • 墻壁: 藍(lán)色(B.Cu 底層銅)的銅走線框。
  • 實體: 真實的 PCB 元件封裝。
  • 遠(yuǎn)近提示: 近處的走線更粗,遠(yuǎn)處的更細(xì),以此實現(xiàn)深度暗示。
  • 天花板/地板: 并非逐扇區(qū)渲染,而是由簡單的全屏漸變色代表。

KiDoom 將經(jīng)典游戲、復(fù)古的矢量圖形美學(xué)和專業(yè)的工程軟件這三個看似無關(guān)的元素,成功地融合成了一種前所未有的、令人著迷的視覺體驗。

-----------------------------------------------------------------------------

結(jié)論:在限制中誕生的極致創(chuàng)意

KiDoom 不僅是一個成功的技術(shù)演示,更是一個關(guān)于創(chuàng)造力、問題解決和技術(shù)熱情的精彩故事。它向我們展示了,即使是使用最意想不到的工具,只要有足夠的巧思,也能創(chuàng)造出令人驚嘆的作品。

Is it practical? No. Is it efficient? Barely. Is it the correct use of a professional PCB design tool? Absolutely not. But it works.

這個項目留給我們的思考是:在你的專業(yè)領(lǐng)域,是否存在一些看似“不務(wù)正業(yè)”卻能激發(fā)無限創(chuàng)意的瘋狂想法?或者,下一個能運行 DOOM 的,會是什么意想不到的東西?

項目主頁:

https://www.mikeayles.com/#kidoom

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電路板
    +關(guān)注

    關(guān)注

    140

    文章

    5261

    瀏覽量

    106638
  • KiCAD
    +關(guān)注

    關(guān)注

    5

    文章

    313

    瀏覽量

    10239
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    電路板設(shè)計

    用手觸摸電路板的電阻腿腳脈沖信號輸出就正常是什么原因
    發(fā)表于 07-28 05:12

    AN 224:高速電路板指南

    電子發(fā)燒友網(wǎng)站提供《AN 224:高速電路板指南.pdf》資料免費下載
    發(fā)表于 07-14 15:45 ?2次下載

    【案例3.9】電路板無法啟動的故障分析

    【案例3.9】電路板無法啟動的故障分析【現(xiàn)象描述】某設(shè)計,CPU以菊花鏈的方式接兩片F(xiàn)lash存儲器,CPU的引導(dǎo)程序存儲Flash存儲器中,兩片F(xiàn)lash存儲器互為冗余備份。電測試發(fā)現(xiàn),多塊
    的頭像 發(fā)表于 06-07 09:04 ?556次閱讀
    【案例3.9】<b class='flag-5'>電路板</b>無法啟動的故障分析

    貼片電解電容電路板中的作用

    貼片電解電容是電子產(chǎn)品中不可或缺的元器件之一,以其獨特的功能和緊湊的體積,電路板設(shè)計中發(fā)揮著至關(guān)重要的作用。本文將深入探討貼片電解電容電路板中的多重作用,以及它們?nèi)绾斡绊?/div>
    的頭像 發(fā)表于 04-02 14:55 ?1055次閱讀
    貼片電解電容<b class='flag-5'>在</b><b class='flag-5'>電路板</b>中的作用

    射頻電路板設(shè)計技巧

    現(xiàn)代電子系統(tǒng)中,射頻(RF)電路板設(shè)計已變得越來越復(fù)雜和關(guān)鍵。隨著通信技術(shù)的快速發(fā)展,從5G移動通信到衛(wèi)星通信、雷達(dá)系統(tǒng),射頻電路的性能直接影響整個系統(tǒng)的質(zhì)量和可靠性。射頻電路板設(shè)計
    的頭像 發(fā)表于 03-28 18:31 ?824次閱讀
    射頻<b class='flag-5'>電路板</b>設(shè)計技巧

    警惕靜電:電路板的隱形殺手? ?

    PCBA 加工領(lǐng)域,靜電猶如一個潛伏在暗處的隱形殺手,時刻威脅著電路板的安全與性能。稍有不慎,它就能給電路板帶來難以估量的損害,造成巨大的經(jīng)濟(jì)損失。今天,就讓我們深入了解一下靜電給電路板
    的頭像 發(fā)表于 03-18 13:09 ?1319次閱讀
    警惕靜電:<b class='flag-5'>電路板</b>的隱形殺手?  ?

    PCB電路板連接器插不進(jìn)去,客戶說你用力

    PCB電路板的連接器插不去,找客戶確認(rèn),客戶說你不夠用力……
    的頭像 發(fā)表于 03-03 14:40 ?751次閱讀
    PCB<b class='flag-5'>電路板</b><b class='flag-5'>上</b>連接器插不進(jìn)去,客戶說你用力

    LED節(jié)能燈電路板的電容:關(guān)鍵作用與不可或缺性

    發(fā)揮著重要作用。今天,我們將深入探討LED節(jié)能燈電路板常用的電容類型、它們的作用,以及沒有電容是否仍能正常工作。 LED節(jié)能燈電路板常用的電容類型
    的頭像 發(fā)表于 02-19 10:14 ?3080次閱讀
    LED節(jié)能燈<b class='flag-5'>電路板</b><b class='flag-5'>上</b>的電容:關(guān)鍵作用與不可或缺性

    柔性電路板銅箔挑選指南,看這一篇就夠了!

    開篇:柔性電路板銅箔的重要地位 如今這個電子產(chǎn)品無處不在的時代,從咱們每天不離手的智能手機(jī)、便捷的平板電腦,到手腕的智能穿戴設(shè)備,再到汽車?yán)锏碾娮涌刂葡到y(tǒng),柔性電路板(FPC)可謂
    的頭像 發(fā)表于 02-08 11:34 ?1448次閱讀
    柔性<b class='flag-5'>電路板</b>銅箔挑選指南,看這一篇就夠了!

    DPC電路板:多領(lǐng)域應(yīng)用的先鋒

    隨著科技的飛速發(fā)展,電路板作為電子設(shè)備的基礎(chǔ)組件,其性能和應(yīng)用領(lǐng)域不斷拓展。其中,DPC(Direct Plated Copper,直接鍍銅)電路板以其出色的性能,眾多高科技領(lǐng)域中發(fā)揮著至關(guān)重要的作用……
    的頭像 發(fā)表于 02-06 19:00 ?1309次閱讀

    電路板 Layout 的混合信號 PCB 設(shè)計指南

    ?本文重點在混合信號PCBLayout布線在混合信號設(shè)計中放置器件。電源分配網(wǎng)絡(luò)的混合信號PCB設(shè)計要求。以前,電子產(chǎn)品包含多個電路板,每塊電路板負(fù)責(zé)處理不同的功能。在這些舊系統(tǒng)中,可能包括處理器
    的頭像 發(fā)表于 01-17 19:25 ?1850次閱讀
    <b class='flag-5'>電路板</b> Layout 的混合信號 PCB 設(shè)計指南

    電路板代工工廠挑選秘籍,一文讀懂!

    電子行業(yè)蓬勃發(fā)展的當(dāng)下,一塊優(yōu)質(zhì)的電路板對產(chǎn)品的性能和質(zhì)量起著決定性作用。而選擇合適的代工工廠,無疑是打造高品質(zhì)電路板的關(guān)鍵一步。今天,咱們就來聊聊該如何挑選電路板代工工廠。
    的頭像 發(fā)表于 01-14 10:18 ?878次閱讀

    電路板維修需要哪些步驟

    ,短時間內(nèi)能把一個電路板研究透徹,并維修成功,這才是一個維修高手的象征。 電路板維修技術(shù)門檻比較高,一些書籍資料往往和實際應(yīng)用對不上,造成學(xué)習(xí)資源太碎片化,給入門學(xué)習(xí)帶來一定的阻力。 ?
    的頭像 發(fā)表于 01-14 09:20 ?2592次閱讀

    電路板Layout的PCB過孔設(shè)計規(guī)則

    電路板可能包含數(shù)以千計的走線、焊盤和孔,用于器件引腳之間傳導(dǎo)信號和輸送電源。電路板 layout 設(shè)計師的職責(zé)就是整理和設(shè)計這些元件,將它們正確地連接起來,避免與其他信號或電源網(wǎng)絡(luò)接觸。要做到這一點,就需要在
    的頭像 發(fā)表于 12-23 15:38 ?2639次閱讀
    <b class='flag-5'>電路板</b>Layout的PCB過孔設(shè)計規(guī)則

    探秘電路板組件:電子設(shè)備的 “隱形引擎”

    科技飛速發(fā)展的當(dāng)下,電路板組件如同隱匿電子產(chǎn)品軀殼內(nèi)的精密“神經(jīng)中樞”,雖常不為人所見,卻掌控著一切運行的脈搏。電路板組件到底是如何呢?來聽聽捷多邦小編怎么說。 一塊小小的
    的頭像 發(fā)表于 12-23 15:29 ?669次閱讀