日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

wKgZO2knwjaAHXVhAA5aiCqT5JQ682.png

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

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

答案就是 KiDoom 項目。它將 1993 年的經(jīng)典游戲《毀滅戰(zhàn)士》(DOOM)渲染在了一個專業(yè)的 PCB編輯器 KiCad 中。這個項目背后充滿了巧妙的技術(shù)構(gòu)思和令人驚訝的實現(xiàn)細節(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 (足夠進行基本游戲)

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

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

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

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

這種設(shè)計的巧妙之處在于,它創(chuàng)造了一種“任何 PCB 設(shè)計師都能直觀理解的視覺層級”。一個強大的霰彈槍手是一個復雜的 64 引腳芯片,而一個簡單的醫(yī)療包只是一個 3 引腳的晶體管。為了實現(xiàn)這個映射超過 150 種不同游戲?qū)嶓w的系統(tǒng),開發(fā)者必須深入 DOOM 的 C 語言源代碼進行修改。挑戰(zhàn)在于,游戲原生的vissprite_t渲染結(jié)構(gòu)體中并不包含實體的類型信息。解決方案是直接對引擎進行“外科手術(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 語言進程在后臺運行的。

項目采用了一種“三模式渲染”架構(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)過深思熟慮的復雜系統(tǒng)。而整個系統(tǒng)的性能瓶頸,也清晰地指向了 KiCad 的 Python API 調(diào)用pcbnew.Refresh(),這一步會消耗 30-50 毫秒,是幀率的主要限制因素。

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

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

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

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

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

KiDoom 將經(jīng)典游戲、復古的矢量圖形美學和專業(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)域,是否存在一些看似“不務正業(yè)”卻能激發(fā)無限創(chuàng)意的瘋狂想法?或者,下一個能運行 DOOM 的,會是什么意想不到的東西?

項目主頁:

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

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

    關(guān)注

    140

    文章

    5347

    瀏覽量

    109083
  • KiCAD
    +關(guān)注

    關(guān)注

    6

    文章

    330

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    關(guān)于電路板啟動問題的建議

    我需要一些關(guān)于電路板啟動問題的建議。 我用FS32K144UAT0VLLT設(shè)計了一個定制 PCB(rev-C 參考原理圖)。我做了not包括 OpenSDA 適配器 — 目的是通過 SWD
    發(fā)表于 04-29 07:38

    電路板銅板氧化層清洗# 能勢環(huán)??萍?助焊劑清洗 #電路板

    電路板
    jf_94090437
    發(fā)布于 :2026年04月13日 13:24:41

    電路板電阻推力測試怎么做?推拉力測試機測試方法與標準解析

    最近我們接待了一位來自電子制造行業(yè)的客戶,他們主要從事電路板貼片加工相關(guān)業(yè)務,目前想評估電路板電阻元件的焊接強度。針對這個需求,科準測控小編今天就和大家分享一下,如何使用BetaS100推拉力測試
    的頭像 發(fā)表于 04-03 13:40 ?181次閱讀
    <b class='flag-5'>電路板</b>電阻推力測試怎么做?推拉力測試機測試方法與標準解析

    電路板三防漆有毒嗎

    深入探討這個問題。電路板三防漆有毒嗎完全固化后的三防漆涂層,化學性質(zhì)穩(wěn)定,通常對人體無害。它在電路板形成的是一層堅韌透明的保護膜,用于隔絕環(huán)境侵蝕。然而在液態(tài)未
    的頭像 發(fā)表于 01-16 16:43 ?562次閱讀
    <b class='flag-5'>電路板</b>三防漆有毒嗎

    探索Broadcom ezPyro? 背板電路板:開啟紅外傳感評估新旅程

    探索Broadcom ezPyro? 背板電路板:開啟紅外傳感評估新旅程 電子工程師的設(shè)計世界里,一款優(yōu)秀的評估平臺能為項目的推進帶來極大的便利。今天,我們就來深入了解一下Broadcom
    的頭像 發(fā)表于 12-30 16:20 ?333次閱讀

    電路板離子污染的核心危害和主要來源

    電路板離子污染是電子制造業(yè)及相關(guān)應用領(lǐng)域中不容忽視的質(zhì)量隱患,其本質(zhì)是電路板在生產(chǎn)、存儲或使用過程中殘留的可電離物質(zhì)(如助焊劑殘留、手指汗液鹽分、環(huán)境粉塵等),這些物質(zhì)潮濕環(huán)境下會形成導電通路,成為導致
    的頭像 發(fā)表于 12-29 16:06 ?763次閱讀

    同惠TH2851 LCR測試儀電路板故障檢測中的作用

    現(xiàn)代電子設(shè)備中,電路板作為核心組件,其穩(wěn)定性和可靠性至關(guān)重要。然而,電路板的故障檢測一直是一個復雜且技術(shù)密集的過程。同惠TH2851 LCR測試儀作為一種高精度、多功能的阻抗分析儀器,為電路
    的頭像 發(fā)表于 10-18 10:05 ?1656次閱讀
    同惠TH2851 LCR測試儀<b class='flag-5'>在</b><b class='flag-5'>電路板</b>故障檢測中的作用

    FCT自動測試設(shè)備:電路板性能檢測利器

    FCT自動測試設(shè)備能夠?qū)崿F(xiàn)對電路板的功能自動化測試,提高測試覆蓋率。設(shè)備通過預設(shè)的測試程序和自動化操作流程,對電路板的各項功能和性能指標進行檢測和驗證。例如,通信設(shè)備的電路板測試中,
    的頭像 發(fā)表于 08-07 16:35 ?2538次閱讀
    FCT自動測試設(shè)備:<b class='flag-5'>電路板</b>性能檢測利器

    電路板設(shè)計

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

    AN 224:高速電路板指南

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

    了解電路板氣密性檢測儀,讓電路板品控更靠譜-岳信儀器

    電子制造領(lǐng)域,電路板的質(zhì)量控制至關(guān)重要,而電路板氣密性檢測儀則是保障其品質(zhì)的關(guān)鍵工具。電路板氣密性檢測儀基于先進的檢測原理工作。常見方法有壓差法,通過對
    的頭像 發(fā)表于 07-04 14:17 ?528次閱讀
    了解<b class='flag-5'>電路板</b>氣密性檢測儀,讓<b class='flag-5'>電路板</b>品控更靠譜-岳信儀器

    電路板助焊劑殘留的處理方法

    焊錫是焊接線路中連接電子元器件的重要工業(yè)原材料,pcb線路錫的工藝中有浸錫,印刷過回焊爐,還有一種是機器焊錫機焊接或手工烙鐵焊接這幾種,但不管是哪一些工藝焊接后的PCB
    的頭像 發(fā)表于 06-19 15:36 ?2434次閱讀

    激光焊錫工藝電路板產(chǎn)品的主要應用

    現(xiàn)代工業(yè)制造已經(jīng)快速向智能化的方向發(fā)展,而產(chǎn)品想要實現(xiàn)更豐富的智能功能,就需要各種集成電路板塊的支持,而一旦缺少這種重要的芯片應用基礎(chǔ)設(shè)備,所有的智能化生產(chǎn)都只是一場空談而已。那么目前對工業(yè)生產(chǎn)有著強力支撐作用的電路板產(chǎn)品的主要應用都有哪些呢?
    的頭像 發(fā)表于 06-09 10:05 ?961次閱讀

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

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

    2塊含有cyusb3014的同樣電路板插接在同一臺電腦,如何實現(xiàn)用CYAPI對2塊電路板cyusb3014的slavefifo總線讀取和寫入呢?

    你好! 我現(xiàn)在由2塊一樣的含有cyusb3014的電路板,電路板與fpga通信采用slavefifo總線模式,cyusb3014的固件一樣,只是2塊電路板的cyusb3014的枚舉v
    發(fā)表于 05-19 06:47
    罗甸县| 丰原市| 商洛市| 临猗县| 泽库县| 新竹市| 昌宁县| 万荣县| 绥江县| 班玛县| 克拉玛依市| 平顺县| 仁布县| 泽普县| 乌什县| 宁乡县| 桐庐县| 东至县| 兴城市| 临高县| 克东县| 海原县| 保德县| 蚌埠市| 班戈县| 宾川县| 革吉县| 拉孜县| 普兰店市| 无为县| 寿光市| 鄢陵县| 湖州市| 乌兰察布市| 邵阳县| 阿勒泰市| 临沂市| 三门县| 漳州市| 历史| 盐池县|