Compiled blocks

目錄

一,編譯塊 Compiled Block

二,編譯循環

三,調用編譯塊?Invoke

四,Tips and notes


一,編譯塊 Compiled Block

? ? ? ? 在幾何體網絡內,可將網絡的一部分放入編譯塊(compiled block)內(其內所有節點應是可編譯的),可使塊行為像一個節點一樣;這對網絡如何工作強加了許多限制,但也在適當的條件下帶來巨大的好處:

  • 主要好處是多線程的for-each loops;在大量獨立的piece上運行相同的節點塊,編譯塊會讓houdini發布在多個核上;
  • 另一好處是更高效的使用OpenCL;通常,即使一個節點處理幾何體(在顯卡上),在每節點后幾何體也必須復制回主內存(由于其他節點可能會訪問它);然而在編譯塊內,許多基于OpenCL的節點可在處理數據時將數據保留在顯卡上,無需將其復制回,從而提高了速度;
  • 在普通網絡內,理論上每個階段會復制其正在處理的幾何體;在實踐中,有很多優化可使其高效,但這仍然有成本;在編譯塊內,節點可在同一幾何體上原位工作,因為不允許外部引用;這可以為編譯塊提供額外的加速;

限制

  • 僅可使用可編譯的節點;
  • 不可使用stamp()表達式;
  • 不可使用局部變量,每組件表達式,如需對每組件操作需使用基于VEX的節點,如attribute wrangle;
  • 不可使用通過名稱引用的內部幾何體,如npoints("/obj/sphere1") ,應使用spare inputs替代;可通過路徑引用通道值,如ch("../sphere1/tx"),但不能讀取幾何體,如point表達式;
  • 不可讀取直接的輸入端口,如point(0, …) or npoints(0),使用spare inputs;
  • 禁用/隱藏的參數不可計算;
  • 不支持for each節點的stop條件;?

編譯塊不報錯也不代表結果正確:

hscript command和python expression,在循環迭代中會烘焙成一個值不會在循環中變化;

//python表達式
hou.node("/obj/geo1/metadata").geometry().attribValue('iteration')

如編譯塊內有用到不可編譯的節點但沒有用到,可勾選Delay Incompatible Node Errors Until Cooked(運行時識別);

如一些節點不能被編譯而編譯失敗,可勾選Fallback to Traditional Cook If Compile Fails,退化為常規非編譯計算;

  • 錯誤發生在編譯階段,才可退化執行;
  • 如勾選Delay Incompatible Node Errors Until Cooked(僅在運行時才識別不可編譯的節點),無法退化執行;

編譯塊可以由多個Block End Compile,應設置Primary Path;

二,編譯循環

? ? ? ? 是把循環放在編譯塊內,而不是把編譯塊放在循環內;

? ? ? ? 在for-each循環的最高級別循環(最外層循環)的終端節點上,打開Multithread when Compiled參數,告訴houdini將不同循環迭代發布到不同核心上;僅在最外層循環上打開此參數,避免發布任務的激增;

Nesting blocks

使用編譯塊和循環時,注意在每個塊的“邊界”處正確封裝和嵌套每個塊的Begin/End節點;普通cook是有效的,houdini會re-cook每迭代的路徑;但編譯塊內的循環是作為獨立的單元被編譯的,必須在自己的Begin/End節點內;

Spare inputs

在編譯塊內的幾何體表達式,不能引用節點的直接輸入,也不能通過名字引用;不能有任何的動態表達式;任何需要從其他SOP讀取數據的SOP,必須在cook前靜態地確定,不是在cook期間在確定;

可添加spare input,去指向引用的節點;spare input在編譯塊運行前會re-cook;

三,調用編譯塊?Invoke

? ? ? ? 運行其他地方定義的編譯塊,以處理節點的輸入,好像被引用的編譯塊被連入;

在兩個方面有用:

  • 可在網絡不同的地方復用塊功能,不必復制或引用節點;
  • 可創建以資產,其參數接受編譯塊的引用;

Inputs

  • 可指定許多輸入,每個輸入可覆蓋block begin compile的輸入;
  • 輸入必須匹配block begin compile的名字,如沒有匹配的輸入將使用編譯塊原始的輸入;

四,Tips and notes

  • spare input也有用于在wrangle節點內引用外部幾何體(超過wrangle節點的四個輸入);
  • 在編譯塊內的打開顯示flag,將會非編譯cook;必須在block end節點后以編譯;
  • 可打開badge以查看節點是否為可編譯的;

HoudiniEasyCompileBlock_v0_5_6插件

可輕松為編譯循環或節點選擇,可創建所有所需的節點且更新所有表達式引用;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/36040.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36040.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/36040.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jenkins nginx自動化部署 php項目

在當今快速發展的IT領域,自動化部署已成為提高工作效率和減少錯誤的關鍵。Jenkins作為持續集成/持續部署(CI/CD)的佼佼者,結合Docker容器技術和PHP編程語言,以及Ansible自動化工具,可以實現高效、可靠的自動…

Node.js RESTful API

Node.js RESTful API Node.js,作為一種流行的服務器端JavaScript運行環境,因其輕量級、高效和易于學習的特點,成為了開發RESTful API的優選技術之一。RESTful API是一種廣泛使用的Web服務架構風格,它利用HTTP協議的標準方法(如GET、POST、PUT、DELETE)來訪問和操作數據。…

開發指南035-刷新待辦

這個問題在平臺上的難點在于:待辦是在門戶系統里,待辦的處理是在另一個獨立的前端工程里,兩者是跨域關系。當然這兩個系統都是同一個瀏覽器打開的。跨域頁面通訊技術的核心是:消息監聽。 1、門戶主界面的vue頁面的create中掛接消息…

JavaScript 中的 change

什么是 change 事件&#xff1f; change 事件是 HTML 表單元素的一種事件類型&#xff0c;當表單元素的值發生變化并且失去焦點時&#xff0c;該事件會被觸發。常見的表單元素包括 <input>、<select> 和 <textarea>。 適用元素 <input>&#xff08;…

基于DeepNLP AI Store真人點評和ShowCase分享社區-AI for Image Generator

來源 quora 社區: https://deepnlpaistore.quora.com/ github: https://rockingdingo.github.io/deepnlp/store/image_generator 內容 DeepNLP AI Store 網址&#xff1a;http://www.deepnlp.org/store/image-generator 網站針對圖像生成類別 Image Generator下多個AI工具如 …

Spring MVC數據綁定和響應——復雜數據綁定(一)數組綁定

一、數組綁定的使用場景 在實際開發中&#xff0c;可能會遇到客戶端請求需要傳遞多個同名參數到服務器端的情況&#xff0c;這種情況采用前面講解的簡單數據綁定的方式顯然是不合適的。此時&#xff0c;可以使用數組來接收客戶端的請求參數&#xff0c;完成數據綁定。 接下來…

CS與MSF的權限互相傳遞/mimikatz抓取windows 2012明文密碼

目錄 CS和MSF的簡單介紹 Metasploit Cobalt Strike 1、CS權限傳遞到MSF 2、MSF權限傳遞到CS 3、使用mimikatz抓取明文密碼 通過修改注冊表用戶重新登錄后抓取明文密碼 今天的任務是兩個 一個是CS與MSF的權限互相傳遞一個是抓取windows2012的明文密碼 那就分別來完成 …

云計算基礎技術

云計算基礎技術概覽 計算類產品主要提供算力&#xff0c;支持業務運行&#xff0c;例如網站、辦公軟件、數據分析等計算能力&#xff0c;目前典型的產品主要是虛擬化和容器&#xff0c;在公有云上的云主機本質也是虛擬機。網絡類產品主要滿足資源的網絡連通性和隔離&#xff0c…

軟考初級網絡管理員__軟件單選題

1.如下圖所示&#xff0c;在IE“Intemet選項”對話框的()選項卡中可指定電子郵件程序。 常規 內容 高級 程序 2.在Excel的A1單元格中輸入函數“ROUND(1/3,3)”,按回車鍵之后&#xff0c;A1中的值為()。 1 1/3 0.34 0.333 3.在輸入Word文檔過程中&#xff0c;為了防止意…

Pinia的基本用法

Pinia的安裝和引入 1.安裝Pinia npm install pinia2. 在vue項目的main.js文件中引入pinia import { createApp } from vue import { createPinia } from pinia import App from ./App.vueconst pinia createPinia() const app createApp(App)app.use(pinia) app.mount(#ap…

日志打印中對容器(包括多級容器)的通用輸出

在日志打印中&#xff0c;往往有打印一個數組、集合等容器中的每個元素的需求&#xff0c;這些容器甚至可能嵌套起來&#xff0c;如果每個地方都用for循環打印&#xff0c;將會特別麻煩。基于這種需求&#xff0c;作者嘗試實現一個通用的打印函數SeqToStr()&#xff0c;將容器序…

線上民族傳統服飾商城

摘 要 隨著互聯網的不斷發展和普及&#xff0c;電子商務成為了人們生活中不可或缺的一部分。傳統的線下購物方式逐漸被線上購物所取代&#xff0c;人們越來越習慣在互聯網上購物。而民族傳統服飾作為我國豐富多樣的民族文化的重要組成部分&#xff0c;具有獨特的藝術價值和商業…

unity VR Interaction Framework 創建新手勢

提示&#xff1a;文章有錯誤的地方&#xff0c;還望諸位大神不吝指教&#xff01; 文章目錄 前言一、新建物體&#xff0c;并添加必要組件二、添加抓取點三、查看手勢的可視化樣式四、制作新的手勢1.點擊編輯2.根據需求調節手指關節3.保存手勢4. 使用創建的手勢5.運行 總結 前言…

等保測評——安全通信網絡——安全區域邊界

安全通信網絡 網絡架構 a) 應保證網絡設備的業務處理能力滿足業務高峰期需要&#xff1b; b) 應保證網絡各個部分的帶寬滿足業務高峰期需要&#xff1b; c) 應劃分不同的網絡區域&#xff0c;并按照方便管理和控制的原則為各網絡區域分配地址&#xff1b; 應核查是否依據重…

遠程過程調用協議gRPC及在go環境下的使用

1. 遠程過程調用協議 1.1 定義 遠程過程調用(Remote Procedure Call&#xff0c;PRC是一種進程間通信技術&#xff0c;它使得程序可以像調用本地函數一樣調用遠程服務器上的函數。RPC 屏蔽了底層的通信細節&#xff0c;讓開發者能夠更專注于業務邏輯&#xff0c;而無需關心網絡…

無源電壓繼電器 JDY-1210AW 導軌安裝 約瑟JOSEF

系列型號&#xff1a; JDY-1002AW電壓繼電器&#xff1b;JDY-1002B電壓繼電器&#xff1b; JDY-1110AW電壓繼電器&#xff1b;JDY-1110B電壓繼電器&#xff1b; JDY-1220AW電壓繼電器&#xff1b;JDY-1220B電壓繼電器&#xff1b; JDY-1100AW電壓繼電器&#xff1b;JDY-110…

服務器數據恢復—用raid6陣列磁盤組建raid5陣列如何恢復原raid數據?

服務器存儲數據恢復環境&#xff1a; 華為OceanStor 5800存儲&#xff0c;該存儲中有一組由10塊硬盤組建的raid6磁盤陣列&#xff0c;供企業內部使用&#xff0c;服務器安裝linux操作系統EXT3文件系統&#xff0c;劃分2個lun。 服務器存儲故障&#xff1a; 管理員發現存儲中rai…

JavaScript的學習之dom的查詢(一)

一、獲得元素 通過document對象調用&#xff1a; getElementById()&#xff1a;通過id屬性獲取一個元素節點對象getElementsByTagName()&#xff1a;通過標簽名獲取一組元素節點對象getElementsByName()&#xff1a;通過name屬性來獲取一組元素節點對象 核心學習代碼 <scrip…

記錄一次即將出現的釣魚新方式

釣魚通常是內網滲透過程中的最為常見的入口方式&#xff0c;但是隨著藍隊人員溯源反制思路開闊&#xff0c;入侵排查能力提升&#xff0c;釣魚也越來越困難&#xff0c;這里就記一種不同尋常的釣魚方式。 pip install 的執行流程&#xff1a; 先獲取到遠端的服務器地址 url 比…

node.js 面試題 1

### 明天要去面試了 今天晚上突擊一下node.js 什么是Node.js&#xff1f;它有什么特點&#xff1f; Node.js是一個基于Chrome V8引擎的JavaScript運行環境&#xff0c;它允許在服務器端運行JavaScript代碼。它的特點包括單線程、非阻塞I/O、事件驅動等 …