1. 程式人生 > >PhysX學習記錄 三

PhysX學習記錄 三

寫完第一個Demo,心裡有了一個直觀的感受。現在需要通過閱讀來深入瞭解一些內部細節了。

1.對於NxCreatePhysicsSDK函式

a.PhysX支援玩家自定義的記憶體分配方式。

只要在NxCreatePhysicsSDK函式的第二個引數裡面傳入記憶體分配類指標即可。
    class MyAllocator : public NxUserAllocator    
	{   
	public:
		void * malloc(NxU32 size)        
		{           
			return ::malloc(size);
		}        
		void * mallocDEBUG(NxU32 size,const char *fileName, int line)        
		{            
			return ::_malloc_dbg(size,_NORMAL_BLOCK, fileName, line);        
		}        
		void * realloc(void * memory, NxU32 size)        
		{ 
			return ::realloc(memory,size);       
		}
		void free(void * memory)      
		{
			::free(memory);      
		} 
	}
	myAllocator;    gPhysicsSDK = NxCreatePhysicsSDK(NX_PHYSICS_SDK_VERSION, &myAllocator, 0);

b.建立和釋放必須配對

NxCreatePhysicsSDK函式返回的是一個單鍵物件指標。所以一個程序,多次呼叫NxCreatePhysicsSDK返回的是同一個物件。一個程序只能由一個SDK例項物件。該例項是包含引用計算的單鍵。所以要求每次NxCreatePhysicsSDK呼叫,都要有配對的gPhysicsSDK->release();

2.例項化物件

很多SDK物件介面都包含了Create方法。可以返回例項化物件指標。很多物件對不能直接new出來。因為本身是虛擬函式。然後對應的釋放都呼叫對應的release函式。 物件包含userData成員。可以用來記錄物件相應資料記憶體指標。

3.有關時間間隔

這裡主要是兩個時間。一個是模擬時間,一個是模擬步長。 在NxScene->simulate函式傳入引數elapsedTime是模擬時間。每一次simulate模擬的時間。 NxScene->setTiming(maxTimestep, maxIter, method)。 maxTimeStep該引數在傳入的method是NX_TIMESTEP_FIXED的時候表示每次simulate模擬的最大時間步長。如果elapsedTime > maxTimeStep,則simulate會把時間分成多個maxTimeStep來執行。最多執行maxIter次。如果maxIter次還沒有達到elapsedTime 時間。則剩餘的時間累計到下一次simulate呼叫時計算。maxTimeStep一般是1/100到1/50s比較好。 如果method是NX_TIMESTEP_VARIABLE則simulate把elapsedTime作為單步時間來模擬。

4.有關VRD的座標顏色

VRD顯示的座標系只有紅色、綠色、藍色三種不同顏色座標軸。沒有座標軸的X,Y,Z標誌的。 據觀察測試 紅色:X 綠色:Y 藍色:Z

相關推薦

PhysX學習記錄

寫完第一個Demo,心裡有了一個直觀的感受。現在需要通過閱讀來深入瞭解一些內部細節了。 1.對於NxCreatePhysicsSDK函式 a.PhysX支援玩家自定義的記憶體分配方式。 只要在NxCreatePhysicsSDK函式的第二個引數裡面傳入記憶體分配類指標即

python學習記錄

pri data open 對稱 位置 sleep col pytho -- 一、集合: list_1 = [1,4,5,7,3,6,7,9] list_1 = set(list_1) list_2 = set([2,6,0,66,22,8,4]) #交集 list_

Html與CSS學習記錄

元素的顯示與隱藏 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <

jQuery學習記錄

元素新增方法     *注意兩者之間的區別:prepend()方法,新增的位置是元素的第一個子元素     *before()、after()方法新增的兄弟節點 <!DOCTYPE html> <html la

Java學習記錄

    ①面向物件思想       概述:當需求單一,或者簡單時,我們一步一步去操作沒問題,並且效率也挺高。可隨著需求的更改,功能的增多,發現需要面對每一個步驟很麻煩了,這時就開始思索,能不能把這些步驟和功能在進行封

springcloud 學習記錄 開源架構 PIG 搭建

PIG是開源的,PIGX是收費的,擴充套件了很多功能 PIG跑起來需要裝幾個軟體。 1,RABBITMQ     2,MYSQL    3,REDIS    4,NODEJS 裝了以後,下載程式碼, 後端 

git學習記錄

一, 新增遠端倉庫     1.要關聯一個遠端倉庫,使用命令git remote add origin https://github.com/username/learngitt.git     2.關聯後,使用命令git push -u origin

Mybatis學習記錄()--Mybatis配置檔案詳解

關於mybatis的配置檔案,主要有兩個,一個是SqlMapperConfig.xml檔案一個是mapper.xml檔案,分別對這兩個進行深入全面學習. 一.SqlMapperConfig.xml檔案 1.標籤概況 在SqlMapperConfig

numpy 模組學習記錄

>>> b = np.eye(6)>>> barray([[1., 0., 0., 0., 0., 0.],       [0., 1., 0., 0., 0., 0.],       [0., 0., 1., 0., 0., 0.],       [0., 0., 0.,

Rxjava2.x學習記錄()

Rxjava2.x的內容和Rxjava1.x稍有差別,操作符部分基本不變 使用新增依賴 compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile

Maven學習記錄()--實戰引入Spring支援

一.建立專案 maven專案在IDEA下建立是相當容易 然後給定專案座標,確定即可 二.完善專案目錄結構 IDEA建立完專案結構和標準的maven專案有些差異,這個時候就需要我們手動調整一下 更改前結構 更改後 三.引入sp

Jersey學習記錄()--過濾攔截器與異常處理

本文記錄全域性異常返回,過濾器,攔截器. 一.全域性異常處理器 webservice定義全域性返回錯誤碼是很重要的一個功能,jersey正好就能實現這一功能. 整個流程就是當jersey託管的類發現了異常,丟擲給jersey的異常處理器,該異常處理器直

PhysX學習記錄

原文地址:http://blog.csdn.net/heartrude/article/details/7768113 製作一個需要進行大量物理運算的戰鬥類遊戲,所以需要在伺服器加入物理引擎。三大物理引擎Havok、PhysX、Bullet。由於我們客戶端使用了UnRea

Java8學習記錄()-強大的collect操作

collect應該說是Stream中最強大的終端操作了,使用其幾乎能得到你想要的任意資料的聚合,下面好好分析該工具的用法. 在Stream介面中有如下兩個方法 <R> R collect(Supplier<R> suppl

SpringMVC學習記錄()--異常處理

學習springMVC從大牛那借鑑了很多經驗,感謝ITEYE的大牛 springMVC提供的異常處理主要有兩種方式,一種是直接實現自己的HandlerExceptionResolver,當然這也包括使用Spring已經為我們提供好的SimpleMappin

SpringDataJPA學習記錄()--複雜查詢的封裝

SpringDataJPA學習記錄(三)–複雜查詢的封裝 標籤(空格分隔): springJPA 1.使用CriteriaBuilder構建JPQL 在UserRepositoryImpl中使用CriteriaBuilder實現根據id查詢,下面是

BigData 學習記錄

如果 lock 都沒有 stream 節點 信息 nod 存在 物理 master/slave主從結構: HDFS是一個 master/slave的架構。HDFS只有一個NameNode,即master。master負責管理文件系統命名空間和client對文件的訪問。此外,

JS學習記錄(補充

bre protoc 漢堡 replace 修飾 同名 關鍵字 進入 length 函數<html lang="en"> <head> <meta charset="UTF-8"> <title>函數<

Java學習記錄(補充:面向對象的封裝和繼承)

-1 div 方法名 工程師 over println 補充 else time 面向對象的封裝package day7; //面向對象的封裝 public class Employee { String name = "zhangsan"; privat

Uferryman FCC學習記錄)—— jQuery

dto query ndt 子節點 nth 註意 tex cnblogs app 1.jQuery基本了解:   JQuery是一個開源的JavaScript庫,創始人John Resig 2.jQuery的開始準備:   $(document).ready(functio