Time of Update: 2017-02-27
Environment MappingTexture cubes的另一種應用是environment mapping。Environment mapping也稱為reflection mapping,用於近似類比reflective surfaces(反光表面),比如汽車上的鍍了一層金屬物的保險杠。Environment mapping的處理過程比skybox稍微複雜一些,因為需要計算光線與表面的反射向量。反射向量主要由view
Time of Update: 2017-02-27
本章介紹圖形學相關主題的分類,主要包括skybox rendering,environment mapping,fog,以及color blending(天空的渲染,背景環境的紋理映射,霧境,顏色混合)。前兩種effects有一個共同點:都是通過texture cubes實現的。學習這些知識將會讓你在圖形學的道路上走得更遠。Texture Cubes一個texture cube(也稱為cube貼圖)是一個6個2D紋理的集合。每一個紋理對應於以world
Time of Update: 2017-02-27
第7章 Additional Lighting Models本章在上一章光照模型的基礎上再介紹point lights,spotlights以及在情境中添加多種光源。在講解過程中,將會進一步學習HLSL和effect架構。Point Light情境中的一個point light就好比在你周圍的某個位置有一個燈泡,燈泡的光線會輻射到四面八方。這與directional light完全相反,directional light處於無窮遠,並且光線來自於同一個方向。Directional
Time of Update: 2017-02-27
Texture Addressing Modes你可能已經注意到了在TextureMapping.fx中對SamplerState對象成員AddressU = WRAP和AddressV = WRAP的賦值。這就是紋理定址模式,當紋理座標超出範圍[0, 1]時,你可以自行控制應該怎麼顯示。Direct3D支援四種紋理定址模式:Wrap,Mirror,Clamp,Border。Wrap在Wrap定址模式下,在範圍[0, 1]之外的部分,紋理會被當作vertex
Time of Update: 2017-02-27
第四章 Hello,Shaders本章,會編寫第一個shaders。介紹HLSL文法,FX檔案格式,資料結構等等。學完本章,你就具備了深入學習圖形編程的基礎知識。Your First
Time of Update: 2017-02-27
Direct3D 11圖形管線個人電腦一般都有兩個處理器:CPU和GPU,你需要對每一個處理器編寫代碼。這兩個組件擁有完全不同的架構和指令集。在圖形編程中,你需要對兩個處理器都都編寫軟體,對於CPU應用程式使用通用的語言,比如C++,對於GPU則使用HLSL。DirectX是系統之間的橋樑。大部分關於圖形編程的文章都集中講述CPU部分或者GPU部分,但是這兩部分都是非常難懂的。本書兩個部分都會講解。
Time of Update: 2017-02-27
DirectX是一組API的集合,用於在微軟平台上,包括Windows,Windows Phone,Xbox 360,以及Xbox One,開發遊戲或圖形相關的應用程式。DirectX從1990年代中期發展至今,並處於現在圖形開發的前沿。Direct3D是DirectX裡面一套3D圖形API,是這本書主要講述的。DirectX也包含了2D圖形,輸入,音頻,文字渲染和GPU編程的系統支援。本章概述了DirectX和DirectX 11的圖形管線。回顧曆史DirectX
Time of Update: 2017-02-27
介紹圖形編程是視頻遊戲,電影和科學類比模擬背後的魔法。你在電腦螢幕上看到的每一個爆炸,顆粒以及眩光都是使用視訊卡處理的。此外,你看到的每一個像素點都是通過GPU渲染和圖形編程人員軟體實現的,因為現代作業系統使用GPU繪製。這是一個廣泛的話題,但一直以來只屬於少數領域。甚至有經驗的軟體開發人員,通常認為渲染是一門高深的藝術,充滿了複雜的數學工具和深奧的工具。另外,現代圖形學的快速發展使得圖形編程變成了不斷前進的目標,同時建立一個起點變得更加困難。
Time of Update: 2017-02-27
1、變數中字元的長度:${#VARNAME}#A='hello world'#echo ${#A}
Time of Update: 2017-02-27
教程中您將會學到如何:使用GUI Builder 介面建立一個 GUI 容器添加組件調整組件大小對齊組件調整組件錨距設定組件自動調整大小行為編輯組件屬性本教程大約需要30分鐘的時間完成。注意:當您看到 圖示,表示您可以通過點擊它查看更為詳細的GUI Builder相關功能的互動式解說。入門IDE的GUI Builder能讓那些沒有深入瞭解布局管理的使用者建立一個具有專業級外觀的GUI應用變為可能。有關GUI Builder的可視化反饋描述,您可以查閱 GUI Builder
Time of Update: 2017-02-27
Rational Team Concert Express (RTCE) 入門簡介軟體開發已經從單純追求個人效率進展到追求團隊效率的時代。默契的團隊協作和協調的開發步調是 提高軟體生產效率的關鍵。IBM Rational 推出的 Jazz 技術是一個創新的團隊協作平台,它將成為下一 代軟體開發平台的基本架構。Rational Team Concert Express (RTCE) 是基於 Jazz 技術的第一個產品
Time of Update: 2017-02-27
這篇文章介紹了 HtmlParser 開源包和 HttpClient 開源包的使用,在此基礎上實現了一個簡易的網路爬蟲 (Crawler),來說明如何使用 HtmlParser 根據需要處理 Internet 上的網頁,以及如何使用 HttpClient 來簡化 Get 和 Post 請求操作,構建強大的網路應用程式。HttpClient 與 HtmlParser 簡介本小結簡單的介紹一下 HttpClinet 和 HtmlParser
Time of Update: 2017-02-27
前言目前,高度互動和直觀的圖形化使用者介面(GUI)很快被應用到了網上。可是,圖形化使用者介面的開發人員一直以來都在兩種方案中痛苦地抉擇:使用 HTML,開發方便快捷,但顯示過於簡單;開發處理複雜的互動圖形,但通常要依賴於某一特定的平台(如 ActiveX)。ILOG JViews 結合兩者的優點,為 Java 開發人員提供一種更快更豐富的動態進階映像顯示方案。本文主要針對於熟悉 Web 應用程式開發,同時對 ILOG JViews 有所瞭解的 Java 開發人員,從而協助他們採用 ILOG
Time of Update: 2017-02-27
Beans Binding、Swing Application Framework 以及希望在 IDE 中實現的其它特性自NetBeans 5.0 以來,人們最常談及的且具有創新性的特性是 Project Matisse 或 Form Editor。許多人都認為,在不同 IDE 產品和技術中, Matisse 是最好的使用者介面設計器。因此,許多開發人員開始使用 NetBeans。對於軟體來說,革新和發展是永遠沒有盡頭的。在本文中將看到,NetBeans 6.0 中許多新的 Matisse
Time of Update: 2017-02-27
F# 是一種物件導向的新型函數程式設計語言,用於 Microsoft .NET Framework,已整合到本年度發行的 Microsoft Visual Studio 2010 中。F# 集簡單、簡潔的文法與高度的靜態類型化於一身。這種語言能夠勝任的任務從 F# Interactive 中的輕量探索性編程直到使用 Visual Studio 進行的基於 .NET Framework 的大型組件開發。F# 設計為完全在 CLR 上運行。作為一種基於 .NET Framework 的語言,F#
Time of Update: 2017-02-27
隨著.NET 4的發布,要在.NET平台之上進行並行編程可謂是易如反掌。實際上,微軟為大家提供了三種並行編程的基礎功能。第一種是提供給C++使用的並行執行階段 (Concurrency Runtime);第二種是藉由.NET平台提供給託管語言的一組並行編程函數庫(包括TPL、PLINQ和並行編程資料結構等);最後一種就是基於F# 本身的並行編程特性。然而,由於考慮精簡的緣故,當前的CoreCLR並未包含.NET 4中的並行函數庫,從而在Silverlight(即使最新的Silverlight 4
Time of Update: 2017-02-27
介紹F#是一門並行(parallel)及響應式(reactive)語言。這個說法意味著一個F#程式可以存在多個進行中的運算(如使用.NET線程進行F#計算),或是多個等待中的回應(如等待事件或訊息的回呼函數及代理對象)。F#的非同步運算式是簡化非同步及響應式程式編寫的方式之一。在這篇及今後的文章中,我會探討一些使用F#進行非同步編程的基本方式──大致說來,它們都是F#非同步編程時使用的模式。這裡我假設您已經掌握了async的基本使用方式,如入門指南中的內容。我們從兩個簡單的設計模式開始:CPU非
Time of Update: 2017-02-27
使用選項(Option)type 'T option = | None | Some of 'T下面看一個例子:> let people = [ ("Adam", None); ("Eve" , None); ("Cain", Some("Adam","Eve"));
Time of Update: 2017-02-27
我們繼續Record的學習。我們試著定義並調用一個傳入Vector型別參數的magnify函數:type Vector = { x: int; y: int}let magnify v n = { x = v.x * n; y = v.y * n}let v = { x = 10; y = 15 }printfn "%A" (magnify v 2)但是,如果是如下代碼就會出現編譯錯誤:type Vector = { x: int; y: int}type Point
Time of Update: 2017-02-27
這回我們要學習的是Lambda運算式。F#和C#一樣也有匿名函數。不過感覺將匿名函數稱為Lambda更好些。試著寫些代碼吧:let add = fun x y -> x + yprintfn "%A" (add 1 3)這裡我們定義了add函數。這個定義使用了匿名函數(取出x,y兩個參數,並將x+y的結果返回)。fun就是匿名函數的關鍵字。之前有過的函數定義是:let add x y = x +