導航:首頁 > 源碼編譯 > ope演算法有沒有同態性質

ope演算法有沒有同態性質

發布時間:2022-12-08 18:02:07

『壹』 全同態加密和部分同態的加密有什麼區別

區別:

1、部分同態既能做乘法又能做加法,但是不能同態計算任意的函數;全同態加密可以對密文進行無限次數的任意同態操作,也就是說它可以同態計算任意的函數。

2、部分同態加密能做的事情,全同態加密也能做;但是全同態加密一般計算開銷比較大,所以部分同態加密方案夠用的時候沒必要選用全同態加密;

3、設計出全同態加密的協議是比設計部分同態加密的演算法要難的。

同態加密規定

如果有一個加密函數f,把明文A變成密文A』,把明文B變成密文B』,也就是說f(A)=A』,f(B)=B』。另外還有一個解密函數,能夠將f加密後的密文解密成加密前的明文。

對於一般的加密函數,如果我們將A』和B』相加,得到C』。我們用對C』進行解密得到的結果一般是毫無意義的亂碼。

但是,如果f是個可以進行同態加密的加密函數, 我們對C』使用進行解密得到結果C, 這時候的C = A + B。這樣,數據處理權與數據所有權可以分離,這樣企業可以防止自身數據泄露的同時,利用雲服務的算力。

『貳』 OPE體育贊助了英超哈鎮為什麼沒有大力的宣傳

因為首先你要知道OPE體育就是某U的回歸,所以這次回歸也是新生,OPE體育並不想跟以前的輝煌扯上關系,所以贊助英超哈鎮,是希望重新出發,靠實力重新贏得市場。

『叄』 Paillier同態加密演算法

Paillier加密是一種公鑰加密演算法,基於復合剩餘類的困難問題。其滿足於加法同態,即密文相乘等於明文相加,即:

密鑰生成

快速生成私鑰

在密鑰相同的情況下,可以快速生成密鑰:

, 為歐拉函數,即

加密

解密

加法同態

Paillier加密的兩個密文消息相乘的結果解密後得到兩個消息相加的結果。

對於兩個密文 和

其中 和 都是 中的元素,因此 也屬於 , 並具有相同的性質,所以 可以看作是 加密的密文, 的解密結果為 。

總結

常見的同態加密演算法中,Paillier演算法和Benaloh演算法僅滿足加法同態,RSA演算法和ElGamal演算法只滿足乘法同態,而Gentry演算法則是全同態的。

https://en.wikipedia.org/wiki/Paillier_cryptosystem

https://blog.csdn.net/sinianluoye/article/details/82855059

http://www.cs.tau.ac.il/~fiat/crypt07/papers/Pai99pai.pdf

『肆』 ope有什麼意思

open既能做名詞也能做動詞,那麼你知道它們分別都是什麼意思嗎?下面我為大家帶來open的英語意思和相關用法,歡迎大家一起學習!

open的英語音標

英 [ˈəʊpən]

美 [ˈoʊpən]

open的時態

過去分詞: opened

過去式: opened

現在分詞: opening

open的意思.

adj. 公開的;敞開的;空曠的;坦率的;營業著的

vi. 開始;展現

vt. 公開;打開

n. 公開;空曠;戶外

open的 近義詞

disclose

open的 反義詞

close

open的詞語用法

adj.(形容詞)

open的基本意思是“開著的,開放的”,也可作“坦率的,無偏見的”解。作“空曠的,開闊的”解時,在句中只充當定語。作“開始營業的,(職位等)空缺的”解時,在句中作表語。

open作表語時,後面經常跟to或with 短語 , open在句中還可充當賓語補足語。

說“讓…開著”,可以直接用形容詞open作補語表示狀態,而不可用動詞open的過去分詞來表示。

v.(動詞)

open的原意是把封起來的或合起來的東西打開或揭開,強調從緊閉的狀態向開放狀態的移動。引申可表示為“開始”“開設”等。

open既可用作及物動詞,也可用作不及物動詞。用作不及物動詞時,多表示某物自身具有打開的性質。在與on, onto等介詞連用時,表示“朝著,朝向”; 在與into, off等詞連用時,表示“通向,通到,從…通入”。open用作不及物動詞時,主動形式可含有被動意義。

open用作及物動詞時,可接名詞或代詞作賓語,也可接以形容詞充當賓語補足語的復合賓語。

open的詞語辨析

open, unfold這 組詞 都有“打開”的意思,其區別是

open 普通用詞,指把原來關起來或蓋緊的東西打開。

unfold 主要指把原來包好、卷好或疊好的東西再打開。

open的詞彙搭配

open up 打開;開發;開始;展示,揭露

in the open 在戶外;在野外

open the door 開門

in open 公開地

open source [計]開放源碼;開放資源

open space 空地;休憩用地;露天場所

open policy 開放政策;預定 保險 單;開口保險單

open pit adj. 露天采礦的

open market 公開市場;自由市場

open air n. 露天,戶外 , adj. 露天的;野外的

open ecation 開放 教育

open system 開放系統

open的英語例句

1. The action is an open violation of the Vienna Convention.

該行為公然違背了《維也納公約》。

2. Without warning, Bardo smacked his fist into his open hand.

巴多沒有任何預兆地一拳砸在自己攤開的手掌上.

3. It's an open secret that the security service bugged telephones.

安全部門竊聽電話是人人皆知的秘密。

4. In 1973, the first Open University graates received their degrees.

1973年,第一批開放大學的 畢業 生獲得了學位。

5. Don't leave a child alone in a room with an open fire.

房間里有裸露的明火時,不要讓孩子獨處其中。

6. Leave a vent open to let some moist air escape.

打開一個通風口,讓潮氣逸出一些。

7. Rachel burst out as the door was flung open again.

當門被再次猛地推開時,雷切爾沖了出去。

8. They pried open a sticky can of blue paint.

他們撬開了一個黏糊糊的藍色油漆桶。

9. His mouth was a little open, as if he'd started to scream.

他的嘴微微張開,似乎是要開始尖叫.

10. The forum is now open to all budding entrepreneurs.

這個論壇目前向所有企業家新秀敞開大門。

『伍』 OPE怎麼都沒有聽過,是做什麼的

一個專業做電競投主的體育娛樂品牌

『陸』 win10注冊表裡的PendigFileRemameopeaations裡面沒有數值咋辦

新建一個。
1、首先我們使用組合建WIN+R打開運行命令,並輸入regedit執行命令,打開注冊列編輯器。2、當我們打開注冊列表編輯器之後,找到彈出錯誤提示的注冊表路徑。
3、接著我們在Main的表中右鍵點擊,然後選擇彈出的窗口的「許可權」。4、接著會彈出一個Main許可權的窗口,然後在「ALLAPPLICATIONPACKAGES」欄目下勾選「完全控制」。5、並且我們要打開「高級」界面窗勾選裡面的「使用可從此對象繼承的許可權替換所有子對象許可權」,最後點擊確定,保存剛剛設置好的操作。6、此時我們回到剛剛彈出錯誤提示的注冊表路徑,我們新建一個值,如果成功就表示可以了。

『柒』 Ope體育有電子競技嗎還是沒有

有的,OPE是主打電競與體育的娛樂品牌,所以肯定是有的。

『捌』 OPE有什麼電子游戲

主打的電競,但是現在還沒有正式上線,等上線以後可以去。

電子游戲(Video Games,少部分學者使用Electronic Games)又稱電玩游戲(簡稱電玩),是指所有依託於電子設備平台而運行的交互游戲。根據媒介的不同多分為五種:

主機游戲(或稱家用機游戲、電視游戲)、掌機游戲、電腦游戲、街機游戲和移動游戲(主要是手機游戲)。

完善的電子游戲在20世紀末出現,改變了人類進行游戲的行為方式和對游戲一詞的定義,屬於一種隨科技發展而誕生的文化活動。電子游戲也可代指「電子游戲軟體」。

『玖』 有誰知道ope什麼意思

ope是一個專門做電競的品牌啦,沒什麼特別的意思

『拾』 什麼是OpeenGL

OpenGL目錄
概述
Open GL現狀
高級功能
OpenGL編程入門
OpenGL與DirectX的區別

概述
OpenGL - 高性能圖形演算法行業標准
OpenGL™ 是行業領域中最為廣泛接納的 2D/3D 圖形 API, 其自誕生至今已催生了各種計算機平台及設備上的數千優秀應用程序。OpenGL™ 是獨立於視窗操作系統或其它操作系統的,亦是網路透明的。在包含CAD、內容創作、能源、娛樂、游戲開發、製造業、制葯業及虛擬現實等行業領域中,OpenGL™ 幫助程序員實現在 PC、工作站、超級計算機等硬體設備上的高性能、極具沖擊力的高視覺表現力圖形處理軟體的開發。
OpenGL(全寫Open Graphics Library)是個定義了一個跨編程語言、跨平台的編程介面的規格,它用於三維圖象(二維的亦可)。OpenGL是個專業的圖形程序介面,是一個功能強大,調用方便的底層圖形庫。OpenGL的前身是SGI公司為其圖形工作站開發的IRIS GL。IRIS GL是一個工業標準的3D圖形軟體介面,功能雖然強大但是移植性不好,於是SGI公司便在IRIS GL的基礎上開發了OpenGL。OpenGL的英文全稱是「Open Graphics Library」,顧名思義,OpenGL便是「開放的圖形程序介面」。雖然DirectX在家用市場全面領先,但在專業高端繪圖領域,OpenGL是不能被取代的主角。
OpenGL是個與硬體無關的軟體介面,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之間進行移植。因此,支持OpenGL的軟體具有很好的移植性,可以獲得非常廣泛的應用。由於OpenGL是圖形的底層圖形庫,沒有提供幾何實體圖元,不能直接用以描述場景。但是,通過一些轉換程序,可以很方便地將AutoCAD、3DS/3DSMAX等3D圖形設計軟體製作的DXF和3DS模型文件轉換成OpenGL的頂點數組。
在OpenGL的基礎上還有Open Inventor、Cosmo3D、Optimizer等多種高級圖形庫,適應不同應用。其中,Open Inventor應用最為廣泛。該軟體是基於OpenGL面向對象的工具包,提供創建互動式3D圖形應用程序的對象和方法,提供了預定義的對象和用於交互的事件處理模塊,創建和編輯3D場景的高級應用程序單元,有列印對象和用其它圖形格式交換數據的能力。
OpenGL的發展一直處於一種較為遲緩的態勢,每次版本的提高新增的技術很少,大多隻是對其中部分做出修改和完善。1992年7月,SGI公司發布了OpenGL的1.0版本,隨後又與微軟公司共同開發了Windows NT版本的OpenGL,從而使一些原來必須在高檔圖形工作站上運行的大型3D圖形處理軟體也可以在微機上運用。1995年OpenGL的1.1版本面市,該版本比1.0的性能有許多提高,並加入了一些新的功能。其中包括改進列印機支持,在增強元文件中包含OpenGL的調用,頂點數組的新特性,提高頂點位置、法線、顏色、色彩指數、紋理坐標、多邊形邊緣標識的傳輸速度,引入了新的紋理特性等等。OpenGL 1.5又新增了「OpenGL Shading Language」,該語言是「OpenGL 2.0」的底核,用於著色對象、頂點著色以及片斷著色技術的擴展功能。
OpenGL 2.0標準的主要制訂者並非原來的SGI,而是逐漸在ARB中占據主動地位的3DLabs。2.0版本首先要做的是與舊版本之間的完整兼容性,同時在頂點與像素及內存管理上與DirectX共同合作以維持均勢。OpenGL 2.0將由OpenGL 1.3的現有功能加上與之完全兼容的新功能所組成(如圖一)。藉此可以對在ARB停滯不前時代各家推出的各種糾纏不清的擴展指令集做一次徹底的精簡。此外,硬體可編程能力的實現也提供了一個更好的方法以整合現有的擴展指令。
目前,隨著DirectX的不斷發展和完善,OpenGL的優勢逐漸喪失,至今雖然已有3Dlabs提倡開發的2.0版本面世,在其中加入了很多類似於DirectX中可編程單元的設計,但廠商的用戶的認知程度並不高,未來的OpenGL發展前景迷茫。
[編輯本段]Open GL現狀
Open GL仍然是唯一能夠取代微軟對3D圖形技術的完全控制的API。它仍然具有一定的生命力,但是Silicon Graphics已經不再以任何讓微軟不悅的方式推廣Open GL,因而它存在較高的風險。游戲開發人員是一個有著獨立思想的群體,很多重要的開發人員目前仍然在使用Open GL。因此,硬體開發商正在設法加強對它的支持。Direct3D目前還不能支持高端的圖形設備和專業應用; Open GL在這些領域占據著統治地位。最後,開放源碼社區(尤其是Mesa項目)一直致力於為任何類型的計算機(無論它們是否使用微軟的操作系統)提供Open GL支持。
今年08年正式公布OpenGL3.0版本。並且得到了,nv的支持,其官方網站上提供針對N卡的sdk下載。
[編輯本段]高級功能
OpenGL被設計為只有輸出的,所以它只提供渲染功能。核心API沒有窗口系統、音頻、列印、鍵盤/滑鼠或其它輸入設備的概念。雖然這一開始看起來像是一種限制,但它允許進行渲染的代碼完全獨立於他運行的操作系統,允許跨平台開發。然而,有些整合於原生窗口系統的東西需要允許和宿主系統交互。這通過下列附加API實現:
* GLX - X11(包括透明的網路)
* WGL - Microsoft Windows
* AGL - Apple MacOS
另外,GLUT庫能夠以可移植的方式提供基本的窗口功能。
[編輯本段]OpenGL編程入門
OpenGL作圖非常方便,故日益流行,但對許多人來說,是在微機上進行的,首先碰到的問題是,如何適應微機環境。這往往是最關鍵的一步,雖然也是最初級的。一般的,我不建議使用glut 包.那樣難以充分發揮 windows 的界面上的功能.
下面介紹如何在 VC++ 上進行 OpenGL 編程。 OpenGL 繪圖的一般過程可以看作這樣的,先用 OpenGL 語句在 OpenGL 的繪圖環境 RenderContext (RC)中畫好圖, 然後再通過一個 Swap buffer 的過程把圖傳給操作系統的繪圖環境 DeviceContext (DC)中,實實在在地畫出到屏幕上.
下面以畫一條 Bezier 曲線為例,詳細介紹VC++ 上 OpenGL編程的方法。文中給出了詳細注釋,以便給初學者明確的指引。一步一步地按所述去做,你將順利地畫出第一個 OpenGL 平台上的圖形來。
一、產生程序框架 Test.dsw
New Project | MFC Application Wizard (EXE) | "Test" | OK
*注* : 加「」者指要手工敲入的字串
二、導入 Bezier 曲線類的文件
用下面方法產生 BezierCurve.h BezierCurve.cpp 兩個文件:
WorkSpace | ClassView | Test Classes| <右擊彈出> New Class | Generic Class(不用MFC類) | "CBezierCurve" | OK
三、編輯好 Bezier 曲線類的定義與實現
寫好下面兩個文件:
BezierCurve.h BezierCurve.cpp
四、設置編譯環境:
1. 在 BezierCurve.h 和 TestView.h 內各加上:
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
2. 在集成環境中
Project | Settings | Link | Object/library mole | "opengl32.lib glu32.lib glaux.lib" | OK
五、設置 OpenGL 工作環境:(下面各個操作,均針對 TestView.cpp )
1. 處理 PreCreateWindow(): 設置 OpenGL 繪圖窗口的風格
cs.style |= WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CS_OWNDC;
2. 處理 OnCreate():創建 OpenGL 的繪圖設備。
OpenGL 繪圖的機制是: 先用 OpenGL 的繪圖上下文 Rendering Context (簡稱為 RC )把圖畫好,再把所繪結果通過 SwapBuffer() 函數傳給 Window 的 繪圖上下文 Device Context (簡記為 DC).要注意的是,程序運行過程中,可以有多個 DC,但只能有一個 RC。因此當一個 DC 畫完圖後,要立即釋放 RC,以便其它的 DC 也使用。在後面的代碼中,將有詳細注釋。
int CTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
myInitOpenGL();
return 0;
}
void CTestView::myInitOpenGL()
{
m_pDC = new CClientDC(this); //創建 DC
ASSERT(m_pDC != NULL);
if (!mySetupPixelFormat()) //設定繪圖的點陣圖格式,函數下面列出
return;
m_hRC = wglCreateContext(m_pDC->m_hDC);//創建 RC
wglMakeCurrent(m_pDC->m_hDC, m_hRC); //RC 與當前 DC 相關聯
} //CClient * m_pDC; HGLRC m_hRC; 是 CTestView 的成員變數
BOOL CTestView::mySetupPixelFormat()
{//我們暫時不管格式的具體內容是什麼,以後熟悉了再改變格式
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd
1, // version number
PFD_DRAW_TO_WINDOW | // support window
PFD_SUPPORT_OPENGL | // support OpenGL
PFD_DOUBLEBUFFER, // double buffered
PFD_TYPE_RGBA, // RGBA type
24, // 24-bit color depth
0, 0, 0, 0, 0, 0, // color bits ignored
0, // no alpha buffer
0, // shift bit ignored
0, // no accumulation buffer
0, 0, 0, 0, // accum bits ignored
32, // 32-bit z-buffer
0, // no stencil buffer
0, // no auxiliary buffer
PFD_MAIN_PLANE, // main layer
0, // reserved
0, 0, 0 // layer masks ignored
};
int pixelformat;
if ( (pixelformat = ChoosePixelFormat(m_pDC->m_hDC, &pfd)) == 0 )
{
MessageBox("ChoosePixelFormat failed");
return FALSE;
}
if (SetPixelFormat(m_pDC->m_hDC, pixelformat, &pfd) == FALSE)
{
MessageBox("SetPixelFormat failed");
return FALSE;
}
return TRUE;
}
3. 處理 OnDestroy()
void CTestView::OnDestroy()
{
wglMakeCurrent(m_pDC->m_hDC,NULL); //釋放與m_hDC 對應的 RC
wglDeleteContext(m_hRC); //刪除 RC
if (m_pDC)
delete m_pDC; //刪除當前 View 擁有的 DC
CView::OnDestroy();
}
4. 處理 OnEraseBkgnd()
BOOL CTestView::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
// return CView::OnEraseBkgnd(pDC);
//把這句話注釋掉,若不然,Window
//會用白色北景來刷新,導致畫面閃爍
return TRUE;//只要空返回即可。
}
5. 處理 OnDraw()
void CTestView::OnDraw(CDC* pDC)
{
wglMakeCurrent(m_pDC->m_hDC,m_hRC);//使 RC 與當前 DC 相關聯
myDrawScene( ); //具體的繪圖函數,在 RC 中繪制
SwapBuffers(m_pDC->m_hDC);//把 RC 中所繪傳到當前的 DC 上,從而
//在屏幕上顯示
wglMakeCurrent(m_pDC->m_hDC,NULL);//釋放 RC,以便其它 DC 進行繪圖
}
void CTestView::myDrawScene( )
{
glClearColor(0.0f,0.0f,0.0f,1.0f);//設置背景顏色為黑色
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslated(0.0f,0.0f,-3.0f);//把物體沿(0,0,-1)方向平移
//以便投影時可見。因為預設的視點在(0,0,0),只有移開
//物體才能可見。
//本例是為了演示平面 Bezier 曲線的,只要作一個旋轉
//變換,可更清楚的看到其 3D 效果。
//下面畫一條 Bezier 曲線
bezier_curve.myPolygon();//畫Bezier曲線的控制多邊形
bezier_curve.myDraw(); //CBezierCurve bezier_curve
//是 CTestView 的成員變數
//具體的函數見附錄
glPopMatrix();
glFlush(); //結束 RC 繪圖
return;
}
6. 處理 OnSize()
void CTestView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
VERIFY(wglMakeCurrent(m_pDC->m_hDC,m_hRC));//確認RC與當前DC關聯
w=cx;
h=cy;
VERIFY(wglMakeCurrent(NULL,NULL));//確認DC釋放RC
}
7 處理 OnLButtonDown()
void CTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
CView::OnLButtonDown(nFlags, point);
if(bezier_curve.m_N>MAX-1)
{
MessageBox("頂點個數超過了最大數MAX=50");
return;
}
//以下為坐標變換作準備
GetClientRect(&m_ClientRect);//獲取視口區域大小
w=m_ClientRect.right-m_ClientRect.left;//視口寬度 w
h=m_ClientRect.bottom-m_ClientRect.top;//視口高度 h
//w,h 是CTestView的成員變數
centerx=(m_ClientRect.left+m_ClientRect.right)/2;//中心位置,
centery=(m_ClientRect.top+m_ClientRect.bottom)/2;//取之作原點
//centerx,centery 是 CTestView 的成員變數
GLdouble tmpx,tmpy;
tmpx=scrx2glx(point.x);//屏幕上點坐標轉化為OpenGL畫圖的規范坐標
tmpy=scry2gly(point.y);
bezier_curve.m_Vertex[bezier_curve.m_N].x=tmpx;//加一個頂點
bezier_curve.m_Vertex[bezier_curve.m_N].y=tmpy;
bezier_curve.m_N++;//頂點數加一
InvalidateRect(NULL,TRUE);//發送刷新重繪消息
}
double CTestView::scrx2glx(int scrx)
{
return (double)(scrx-centerx)/double(h);
}
double CTestView::scry2gly(int scry)
{
}
附錄:
1.CBezierCurve 的聲明: (BezierCurve.h)
class CBezierCurve
{
public:
myPOINT2D m_Vertex[MAX];//控制頂點,以數組存儲
//myPOINT2D 是一個存二維點的結構
//成員為Gldouble x,y
int m_N; //控制頂點的個數
public:
CBezierCurve();
virtual ~CBezierCurve();
void bezier_generation(myPOINT2D P[MAX],int level);
//演算法的具體實現
void myDraw();//畫曲線函數
void myPolygon(); //畫控制多邊形
};
2. CBezierCurve 的實現: (BezierCurve.cpp)
CBezierCurve::CBezierCurve()
{
m_N=4;
m_Vertex[0].x=-0.5f;
m_Vertex[0].y=-0.5f;
m_Vertex[1].x=-0.5f;
m_Vertex[1].y=0.5f;
m_Vertex[2].x=0.5f;
m_Vertex[2].y=0.5f;
m_Vertex[3].x=0.5f;
m_Vertex[3].y=-0.5f;
}
CBezierCurve::~CBezierCurve()
{
}
void CBezierCurve::myDraw()
{
bezier_generation(m_Vertex,LEVEL);
}
void CBezierCurve::bezier_generation(myPOINT2D P[MAX], int level)
{ //演算法的具體描述,請參考相關書本
int i,j;
level--;
if(level<0)return;
if(level==0)
{
glColor3f(1.0f,1.0f,1.0f);
glBegin(GL_LINES); //畫出線段
glVertex2d(P[0].x,P[0].y);
glVertex2d(P[m_N-1].x,P[m_N-1].y);
glEnd();//結束畫線段
return; //遞歸到了最底層,跳出遞歸
}
myPOINT2D Q[MAX],R[MAX];
for(i=0;i {
Q.x=P.x;
Q.y=P.y;
}
for(i=1;i<m_N;i++)
{
R[m_N-i].x=Q[m_N-1].x;
R[m_N-i].y=Q[m_N-1].y;
for(j=m_N-1;j>=i;j--)
{
Q[j].x=(Q[j-1].x+Q[j].x)/double(2);
Q[j].y=(Q[j-1].y+Q[j].y)/double(2);
}
}
R[0].x=Q[m_N-1].x;
R[0].y=Q[m_N-1].y;
bezier_generation(Q,level);
bezier_generation(R,level);
}
void CBezierCurve::myPolygon()
{
glBegin(GL_LINE_STRIP); //畫出連線段
glColor3f(0.2f,0.4f,0.4f);
for(int i=0;i<m_N;i++)
{
glVertex2d(m_Vertex.x,m_Vertex.y);
}
glEnd();//結束畫連線段
}

[編輯本段]OpenGL與DirectX的區別
OpenGL 只是圖形函數庫。
DirectX 包含圖形, 聲音, 輸入, 網路等模塊。
OpenGL穩定,可跨平台使用。DirectX僅能用於Windows系列平台,包括Windows Mobile/CE系列以及XBOX/XBOX360。
----------------------------------------------------------------------------------------------
1995年至1996年,微軟實行了一項新計劃,以支持在Windows95上運行游戲,目標是把市場擴展到被任天堂和世嘉控制的游戲領域。然而,微軟不想用已經在NT上提供的OpenGL技術。微軟收購了Rendermorphics,Ltd.並得到他的被稱作RealityLab的3D API。經重新整理,微軟發布了新的3D API——Direct3D。
微軟,推行Direct3D,凍結OpenGL!
微軟當時拒絕了在Window95上支持OpenGL。不止如此,微軟採取異常手段收回對OpenGL的MCD驅動介面的支持,以致硬體廠商不得不放棄已經進入最後測試的OpenGL驅動。微軟的市場部門開始向游戲開發商、硬體廠商、新聞出版機構推銷Direct3D,同時排斥OpenGL。
API之戰!
Silicon Graphics和很多OpenGL用戶都依賴OpenGL創新且高性能的技術。但很明顯微軟打算用Direct3D代替OpenGL,盡管D3D有很多問題而且不能像OpenGL那樣被硬體廠商擴展。Silicon Graphics決定在1996 SIGGRAPH會議上作一項演示。演示證明OpenGL至少和D3D一樣快,從而駁倒微軟的市場論調。因為OpenGL是業界公認標准,比D3D功能豐富,而且圖像質量要高一些,所以演示在計算機圖形和游戲開發社區導致了激烈論戰。
游戲開發者要求OpenGL和D3D站在同等地位!
當技術和市場問題暴露,強烈的支持OpenGL行動開始了。Doom的開發者John Carmack聲明拒絕D3D,Chris Hecker在游戲開發雜志上發表了兩套API的全面分析,移微軟應放棄D3D為結論。游戲開發者先後兩次向微軟遞交請願書。第一次由56名首席游戲開發者要求微軟發行OpenGL MCD驅動,但未成功,因為會讓OpenGL與D3D競爭。第二次的公開信由254人簽名開始,截止時達到1400人。微軟的回答仍是重申舊市場立場。盡管請願者清楚的要求兩套API同等競爭以促進發展,微軟卻以增加D3D的投資、更加減少OpenGL的投資為回應。
Fahrenheit——D3D與OpenGL的合並?
Silicon Graphics,Microsoft, HP,Intel達成協議聯合開發下一代3D API——Fahrenheit。但不了了之,因為微軟的打算是把OpenGL的技術用到D3D里並且以此之名驅除OpenGL的威脅。(估計DirectX 8 Graphics即是剩下微軟獨自開發的Fahrenheit,吸收了OpenGL的很多東西。)
OpenGL豪氣不減當年!
OpenGL依然是唯一能與微軟單獨控制的D3D對立的API,盡管Silicon Graphics不再以任何微軟不能接受的方式推行OpenGL。游戲開發這是獨立的,並且很多關鍵人物在用OpenGL,因此,硬體廠商正努力提高對其支持。D3D仍不能支持高端圖像和專業應用,而OpenGL主宰著這些土地。在開放原碼社區,Mesa項目正提供獨立於微軟的OpenGL驅動。
譯者註:表面上好像D3D比OpenGL支持更多的功能,其實由於D3D不支持硬體擴展,如硬體全景陰影,硬體渲染順序無關半透明材質等新技術根本無法使用,而D3D(特指D3D8)本身提供的功能只有一小部分能在使用HAL且硬體不支持時模擬,你要用大量代碼分析硬體能力和採取不同策略

閱讀全文

與ope演算法有沒有同態性質相關的資料

熱點內容
喜鵲快貸app怎麼了 瀏覽:263
海龜編輯器積木編程怎麼安裝 瀏覽:185
程序員理發店生意怎麼樣 瀏覽:603
程序員羅技 瀏覽:180
軟考初級程序員課程2021下載 瀏覽:491
杭州程序員奶奶 瀏覽:880
不聽命令造成錯誤 瀏覽:981
kool系統源碼 瀏覽:610
流氓app在哪裡看 瀏覽:98
域名購買了怎麼指向伺服器 瀏覽:121
安卓手機如何讓照片顏色反轉 瀏覽:859
怎麼下載卓睿安手機版 瀏覽:514
h3crange命令 瀏覽:468
php前景和python 瀏覽:338
php壓縮圖片內存大小 瀏覽:495
在哪裡可以查看雲伺服器的信息 瀏覽:70
python讀取非txt文件 瀏覽:799
艾莫迅用什麼編程軟體好 瀏覽:227
android文件存儲讀取 瀏覽:214
php基礎教程第5版 瀏覽:543