fx檔案:
1view codefloat4x4 matworld;
2float time=1.0f;3
4struct
vs_output5;
910vs_output vs(float4 pos:position,float4 color:color)
1119
20float4 ps(vs_output vsout): color
2124
25technique renderscene
2633 }
c#編寫的託管**,基於ww的渲染框架用託管d3d9 呼叫:
1view codeusing
system;
2using
system.collections.generic;
3using
system.linq;
4using
system.text;
5using
worldwind.renderable;
6using
utility;
7using
microsoft.directx.direct3d;
8using
system.io;
9using
microsoft.directx;
10using
system.drawing;
11using
system.windows.forms;
1213
namespace
1423
public
override
void
initialize(drawargs drawargs)
2454 vertexbuffer = new vertexbuffer(typeof(customvertex.positioncolored), 3, drawargs.device, 0
, customvertex.positioncolored.format, pool.default);
55 vertexbuffer.created += new
eventhandler(vertexbuffer_created);
56 vertexbuffer_created(vertexbuffer, null
);57 matrix worldmatrix =matrix.identity;
58 matrix viewmatrix = matrix.lookatlh(new vector3(0.0f, 3.0f, -9.0f), new vector3(0.0f, 0.0f, 0.0f), new vector3(0.0f, 1.0f, 0.0f
));59 matrix projmatrix = matrix.perspectivefovlh((float)math.pi / 4, 1.0f, 1.0f, 100.0f
);60 worldmatrix =drawargs.device.gettransform(transformtype.world);
61 viewmatrix =drawargs.device.gettransform(transformtype.view);
62 projmatrix =drawargs.device.gettransform(transformtype.projection);
6364 m_effect.setvalue("
matworld
", worldmatrix * viewmatrix *projmatrix);
65//
m_effect.setvalue("matviewprojection", viewmatrix * projmatrix);
66 isinitialized = true;67
}6869public
override
void
update(drawargs drawargs)
7077
catch
(exception ex)
7881}82
public
override
void
render(drawargs drawargs)
83102
m_effect.end();
103104
}105
106void vertexbuffer_created(object
sender, eventargs e)
107117
118public
override
void
dispose()
119124
}125
126public
override
bool
performselectionaction(drawargs drawargs)
127130
}131 }
這裡出現乙個問題:
滑鼠在窗體上移動才能夠顯示上下移動的三角形。
有時候啟動了程式,三角形乾脆不顯示。開始還沒有這個問題,後來出現這個問題!
原來我以為是視域體的問題,但是這個三角形肯定在視域體內部啊。
是幀率控制的問題?需要控制幀率嗎,控制幀率是為了減少螢幕重新整理次數。不至於重新整理太頻繁畫面乾脆不顯示吧!
機器有沒有問題?
這個問題真是困擾人!
ww的渲染框架本身會有問題嗎,通過繼承構建的渲染列表對狀態機產生影響了?書上的示例程式是沒有問題的,為啥我寫到乙個renderobject中會出現問題?
後記:移植了nativemethod類後就好了,應該是訊息分發的問題。
我的第乙個shader程式
博主主要關注的是vertex fragment shader的學習,在 上也以此為主。第乙個shader程式如下 shader custom solidshader fixed4 frag sv target endcg 輸出結果如下 根據 gpu程式設計與cg語言之陽春白雪下里巴人 中的解釋 p7...
寫的第乙個Shader
第乙個茶壺是可以運動的紋理,用時間的正弦值和余弦值加在紋理座標上產生偏移實現的,可以考慮用來實現水面的各種效果 第二個茶壺是顏色和紋理的混合,多層紋理的混合應該也是同樣的道理,就是把顏色值相乘就可以了 anipass float4x4 matviewprojection float fsintime...
第乙個視窗程式
程式截圖 程式 include lresult callback wndproc hwnd,uint,wparam,lparam int winapi winmain hinstance hinstance,hinstance hprevinstance,pstr szcmdline,int icm...