OpenGL 第一課:常用的專有名詞

z

一. 圖形API簡(jiǎn)介

1. OpenGL

? ? OpenGL全稱:Open Graphics Library脚作,是一個(gè)跨平臺(tái)的头镊、跨編程語(yǔ)言的編程圖形程序接口胜蛉。其將計(jì)算機(jī)的資源抽象稱為一個(gè)個(gè)的OpenGL的對(duì)象闽晦,對(duì)這些資源的操作抽象為一個(gè)個(gè)的OpenGL指令匪蟀。

? ? 簡(jiǎn)單的說(shuō)就是一套處理PC端圖形圖像渲染的API湃窍。

? ? 適用于:PC

ps: OpenGL vs OpenCV ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? OpenGL: 是做渲染闻蛀,轉(zhuǎn)換為位圖渲染顯示。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? OpenCV: 是做識(shí)別的(比如:人臉識(shí)別您市,身份證觉痛、銀行卡識(shí)別),與人工智能結(jié)合茵休。

2. OpenGL ES

OpenGL ES全稱:OpenGL for Embedded Systems薪棒,是OpenGL三維圖形API的子集。針對(duì)移動(dòng)端(iOS/安卓)泽篮、PDA和游戲主機(jī)等嵌入式設(shè)置而設(shè)計(jì)盗尸,去除了許多不必要和性能較低的API接口。

適用于:嵌入式設(shè)備

3. DirectX

? ? DirectX是有很多API組成帽撑,DirectX并不是一個(gè)單純的圖形API泼各,最重要的是DirectX是屬于Windows上一個(gè)多媒體處理框架,不支持Windows以外的平臺(tái)亏拉,所以不是跨平臺(tái)框架扣蜻,按照性質(zhì)分類逆巍,可以分為四大部分:顯示部分、聲音部分莽使、輸入部分和網(wǎng)絡(luò)部分

? ? 適用于:Windows

4. Metal

? ? Metal是Apple為游戲開(kāi)發(fā)者推出的新的平臺(tái)技術(shù)锐极,該技術(shù)能夠?yàn)?D圖像提高10倍的渲染性能,是Apple為了解決3D渲染而推出的框架芳肌。

? ? Metal和OpenGL ES :

? ? ? ? 2018年之前灵再,iOS的底層圖形渲染是CoreAnimation,是基于OpenGL ES封裝的上層框架亿笤,2018年之后翎迁,底層渲染遷移到了Metal。

? ? ? ? OpenGL ES是第三方框架净薛,不一定契合自己的項(xiàng)目汪榔,Metal可以定制需求,迭代開(kāi)發(fā)

圖形API的左右

圖形API能解決什么問(wèn)題肃拜?

簡(jiǎn)單的說(shuō)痴腌,就是實(shí)現(xiàn)圖形的底層渲染。

* 比如游戲開(kāi)發(fā)中燃领,對(duì)于游戲場(chǎng)景游戲人物的的渲染

* 比如音視頻開(kāi)發(fā)中士聪,對(duì)于視頻解碼后的數(shù)據(jù)渲染

* 比如地圖引擎,對(duì)于地圖上的數(shù)據(jù)渲染

* 比如在動(dòng)畫(huà)中實(shí)現(xiàn)動(dòng)畫(huà)的繪制

* 比如在處理視頻中柿菩,對(duì)于視頻添加濾鏡效果

二. OpenGL 專業(yè)名詞解析

1. OpenGL 狀態(tài)機(jī)

? ? 狀態(tài)機(jī):理論上是一種機(jī)器戚嗅,描述了一個(gè)對(duì)象在其生命周期內(nèi)所經(jīng)歷的各種狀態(tài),狀態(tài)間的轉(zhuǎn)變枢舶,發(fā)生轉(zhuǎn)變的動(dòng)因懦胞,條件轉(zhuǎn)變中所執(zhí)行的活動(dòng)×剐梗或者說(shuō)躏尉,狀態(tài)機(jī)是一種行為,說(shuō)明對(duì)象在其生命周期中響應(yīng)事件所經(jīng)歷的狀態(tài)序列以及對(duì)那些事件的響應(yīng)后众。

? ? 簡(jiǎn)單的可以理解為:是一臺(tái)可以保存狀態(tài)胀糜,并根據(jù)當(dāng)前狀態(tài)進(jìn)行輸出的機(jī)器。

? ? 特點(diǎn):

? ? ? ? * 有記憶功能蒂誉,能記住其當(dāng)前的狀態(tài)

? ? ? ? * 可以接受輸入教藻,根據(jù)輸入的內(nèi)容和自己的原先狀態(tài),修改自己當(dāng)前的狀態(tài)右锨,并且可以有對(duì)應(yīng)輸出

? ? ? ? * 當(dāng)進(jìn)入特殊狀態(tài)(停機(jī)狀態(tài))的時(shí)候括堤,便不再接受輸入,停止工作。

? ? 類推到 OpenGL 中:

? ? ? ? * OpenGL 可以記錄自己的狀態(tài)(如:當(dāng)前使用的顏色悄窃,是否開(kāi)啟了混合功能等)

? ? ? ? * OpenGL 可以接收輸入(當(dāng)調(diào)用OpenGL函數(shù)的時(shí)候讥电,實(shí)際上可以看成OpenGL在接收我們的輸入),如我們調(diào)用glColor3f轧抗,則OpenGL接收到這個(gè)輸入后修改自己的當(dāng)前這個(gè)狀態(tài)恩敌。

? ? ? ? * OpenGL 可以進(jìn)入停止?fàn)顟B(tài),不在接收輸入横媚。在程序退出之前纠炮,OpenGL總會(huì)先停止工作的。


2. OpenGL 上下文 ( context )

? ? ? ? 在應(yīng)用程序調(diào)用任何OpenGL指令之前灯蝴,需要首先安排創(chuàng)建一個(gè)OpenGL的上下文抗碰,這個(gè)上下文是一個(gè)龐大的狀態(tài)機(jī),保存了OpenGL中的各種狀態(tài)绽乔,這也是OpenGL指令執(zhí)行的基礎(chǔ)。

? ? ? ? 不管在哪個(gè)語(yǔ)音中碳褒,OpenGL的函數(shù)折砸,都是類似C語(yǔ)言一樣的面向過(guò)程的函數(shù),本質(zhì)上都是對(duì)OpenGL上下文這個(gè)狀態(tài)機(jī)中的某一個(gè)狀態(tài)或者對(duì)象的操作沙峻,當(dāng)然睦授,需要先把這個(gè)對(duì)象設(shè)置為當(dāng)前對(duì)象。通過(guò)對(duì)OpenGL指令的封裝摔寨,是可以將OpenGL的相關(guān)調(diào)用分裝成一個(gè)面向?qū)ο蟮膱D形API去枷。

? ? ? ? 由于OpenGL是一個(gè)巨大的狀態(tài)機(jī),切換上下文會(huì)產(chǎn)生較大的開(kāi)銷是复。但是不同的繪制模塊删顶,可能需要使用完全獨(dú)立的狀態(tài)管理,因此淑廊,可以在應(yīng)用程序中逗余,分別創(chuàng)建多個(gè)不同的上下文,在不同線程中使用不同的上下文季惩,上下文之間共享紋理录粱、緩沖區(qū)資源等。這種方案比反復(fù)切換上下文或者大量修改宣傳專題画拾,更加合理高效啥繁。

3. 渲染(Rendering)

? ? 渲染:將圖形/圖像數(shù)據(jù)轉(zhuǎn)換為2D空間圖像操作叫做渲染(Rendering)

4. 頂點(diǎn)數(shù)組(VertexArray)& 頂點(diǎn)緩存區(qū)(VertexBuffer)

? ? ? ? 圖畫(huà)一般是先話好圖像的骨架,再填充顏色青抛,對(duì)應(yīng)OpenGL也一樣旗闽。頂點(diǎn)數(shù)據(jù)就是要畫(huà)的圖像的骨架。比如,要畫(huà)一個(gè)三角形宪睹,需要三個(gè)頂點(diǎn)愁茁,這個(gè)三個(gè)頂點(diǎn)就是頂點(diǎn)數(shù)據(jù)。

? ? ? ? OpenGL的圖像是有圖元構(gòu)成亭病,在OpenGL ES中有三種圖元:點(diǎn)鹅很、線、三角形罪帖。

? ? ? ? 開(kāi)發(fā)者可以選擇指定的函數(shù)指針促煮,在調(diào)用繪制方法的時(shí)候,直接有內(nèi)存?zhèn)魅腠旤c(diǎn)數(shù)據(jù)整袁,也就是說(shuō)這部分?jǐn)?shù)據(jù)之前是存在在內(nèi)存中的菠齿,被稱為頂點(diǎn)數(shù)組

? ? ? ? 性能更高的做法是,提前分配一塊顯存坐昙,將頂點(diǎn)數(shù)據(jù)預(yù)先傳入到顯存當(dāng)中绳匀,這部分的顯存,稱為頂點(diǎn)緩存區(qū)

? ? ? ? 頂點(diǎn)是在繪制一個(gè)圖形時(shí)炸客,它的頂點(diǎn)位置數(shù)據(jù)疾棵,而這個(gè)數(shù)據(jù)可以直接存在在數(shù)組中,或者將其緩存到GPU內(nèi)存中痹仙。

? ? ? ? 頂點(diǎn)數(shù)組是內(nèi)存中的一個(gè)數(shù)組是尔,頂點(diǎn)緩沖區(qū)是GPU顯存中的一塊區(qū)域。

5. 管線

? ? 在OpenGL下渲染圖形开仰,就會(huì)經(jīng)歷一個(gè)一個(gè)的節(jié)點(diǎn)拟枚,而這樣的操作可以理解為管線,可以類比為流水線众弓,每個(gè)任務(wù)類似流水線執(zhí)行恩溅,任務(wù)之間有先后順序。

? ? 之所以成為管線谓娃,是因?yàn)轱@卡在處理數(shù)據(jù)的時(shí)候是按照一個(gè)固定的順序來(lái)的暴匠,而且是嚴(yán)格按照這個(gè)順序,就像水管傻粘,水從一端流向另一端每窖,順序不能打破。

6. 固定管線 和 可編程管線

? ? ? ? 在早起OpenGL版本弦悉,封裝了很多中著色器程序塊窒典,內(nèi)置的一段代碼包含了光照、坐標(biāo)變換稽莉,裁剪等諸多功能的固定著色器來(lái)幫助開(kāi)發(fā)者完成圖形的渲染瀑志,而開(kāi)發(fā)者只需要傳入相應(yīng)的參數(shù),就能快速的完成圖形渲染。類似于封裝很多API劈猪,只要調(diào)用昧甘,就可以實(shí)現(xiàn)功能,不需要關(guān)注底層原理战得,這被稱為固定管線或者存儲(chǔ)著色器

? ? ? ? 隨著OpenGL的使用場(chǎng)景的豐富充边,固定管線或者存在著色器無(wú)法完成每一個(gè)業(yè)務(wù),這個(gè)將相關(guān)部分開(kāi)放成可編程常侦,稱為可編程管線浇冰,使用GLSL語(yǔ)法來(lái)編程驅(qū)使GPU。

7. 著色器(shader)

? ? 將固定宣傳管線變成了可編程渲染管線

? ? OpenGL在實(shí)際調(diào)用繪制函數(shù)之前聋亡,需要指定一個(gè)由shader編譯而成的著色器(代碼段)肘习,由GPU執(zhí)行,可以類比為:函數(shù)和方法是一段代碼段坡倔,由CPU來(lái)使用漂佩。著色器)也是代碼段,由GPU執(zhí)行罪塔。

? ? 常見(jiàn)的著色器主要有:

? ? ? ? 頂點(diǎn)著色器(VertexShader)

? ? ? ? 片段著色器(FragmentShader)仅仆,又叫像素著色器(PixelShader),只是在OpenGL和Dx中不同的叫法垢袱。

? ? ? ? 曲面細(xì)分著色器(TessellationShader)

? ? ? ? OpenGL在處理shader時(shí),通過(guò)編譯港柜,鏈接等步驟请契,生成了著色器程序(GLProgram),著色器程序同時(shí)包含了頂點(diǎn)著色器和片段著色器的運(yùn)算邏輯夏醉。在OpenGL進(jìn)行繪制時(shí)爽锥,先有頂點(diǎn)著色器對(duì)傳入的頂點(diǎn)數(shù)據(jù)進(jìn)行運(yùn)算,再通過(guò)圖元裝配畔柔,將頂點(diǎn)轉(zhuǎn)換為圖元氯夷,然后進(jìn)行光柵化,將圖元這種矢量圖形靶擦,轉(zhuǎn)換為柵格化數(shù)據(jù)腮考,最后,將柵格化數(shù)據(jù)傳入片段著色器進(jìn)行運(yùn)行玄捕,片段著色器會(huì)對(duì)柵格化數(shù)據(jù)中的每一個(gè)像素進(jìn)行運(yùn)算踩蔚,并決定像素的顏色。

? ? ? ? 固定著色器:又叫存儲(chǔ)著色器枚粘,是有蘋(píng)果提供的API代碼段馅闽,通過(guò)傳入?yún)?shù)進(jìn)行調(diào)用

? ? 自定義著色器:自己通過(guò)GLSL語(yǔ)法自定義編程的代碼段

?著色渲染過(guò)程


8. 頂點(diǎn)著色器(VertexShader)

? ? ? ? 一般處理圖形每一個(gè)頂點(diǎn)變換,比如:旋轉(zhuǎn)、平移福也、投影等

? ? ? ? 頂點(diǎn)著色器局骤,是OpenGL中計(jì)算頂點(diǎn)屬性的程序,頂點(diǎn)著色器是逐頂點(diǎn)運(yùn)算的程序暴凑,即:每一個(gè)頂點(diǎn)數(shù)據(jù)都會(huì)執(zhí)行一次頂點(diǎn)著色器峦甩,這個(gè)過(guò)程是并行的,在頂點(diǎn)著色器運(yùn)算過(guò)程中搬设,無(wú)法訪問(wèn)其他頂點(diǎn)的數(shù)據(jù)穴店。

? ? ? ? 一般來(lái)說(shuō)典型的需要計(jì)算的頂點(diǎn)屬性,主要包括:頂點(diǎn)坐標(biāo)變換拿穴、逐頂點(diǎn)光照運(yùn)算等等泣洞。頂點(diǎn)坐標(biāo)由自身坐標(biāo)系轉(zhuǎn)換到歸一化坐標(biāo)系的運(yùn)算,就是在這里發(fā)生的默色。

9. 片元著色器(VertexShader)

? ? ? ? 一般用來(lái)處理圖形中每一個(gè)像素點(diǎn)顏色計(jì)算和填充

? ? ? ? 片元著色器是OpenGL用于計(jì)算像素顏色的程序球凰,是逐像素運(yùn)算的程序,圖形中的每一個(gè)像素都會(huì)執(zhí)行一次片元著色器腿宰,這個(gè)過(guò)程是有GPU并行運(yùn)算的呕诉。

10. GLSL(OpenGL shading Language)

? ? GLSL是用來(lái)在OpenGL中著色器編程的語(yǔ)音,即開(kāi)發(fā)人員自定義短小的著色器的語(yǔ)言吃度,他們?cè)趫D形卡的GPU上執(zhí)行甩挫,代替了固定的渲染關(guān)系的一部分,是渲染管線中不同層次具有可編譯性椿每。比如:視圖轉(zhuǎn)換伊者,投影轉(zhuǎn)換等

? ? GLSL的著色器代碼分為兩個(gè)部分:頂點(diǎn)著色器和片元著色器。

11. 光柵化(VertexShader)

? ? 光柵化:是把物體的數(shù)學(xué)描述以及與物體相關(guān)的顏色信息轉(zhuǎn)換到屏幕上用于對(duì)應(yīng)位置的像素以及填充像素的顏色间护,這個(gè)過(guò)程稱為光柵化亦渗;是把頂點(diǎn)數(shù)據(jù)轉(zhuǎn)換為片元的過(guò)程;是一個(gè)將模擬信號(hào)轉(zhuǎn)化為離散信號(hào)的過(guò)程汁尺。

? ? 光柵化具有將圖轉(zhuǎn)化為一個(gè)個(gè)柵格組成的圖像的作用法精。特點(diǎn)是每個(gè)元素對(duì)應(yīng)幀緩存區(qū)中的一像素。

? ? 光柵化過(guò)程產(chǎn)生的是片元痴突。

? ? 光柵化 其實(shí)是一種將幾何圖元編程二維相圖的過(guò)程搂蜓,該過(guò)程包含了兩部分的工作:

? ? ? ? 第一部分:決定窗口坐標(biāo)中的哪些整形柵格區(qū)域被基本圖元占用

? ? ? ? 第二部分:分配一個(gè)顏色值和深度值到各個(gè)區(qū)域,

12. 紋理

? ? 紋理可以理解為圖片辽装,這個(gè)圖片是指的tga文件洛勉。在OpenGL更習(xí)慣叫紋理。

? ? 在移動(dòng)端要把png解壓縮轉(zhuǎn)換為位圖如迟,紋理就是位圖收毫。

13. 混合(Blending)

? ? 在測(cè)試階段之后攻走,如果像素依然沒(méi)有被踢除,那么像素的顏色將會(huì)和幀緩沖區(qū)中顏色附著上的顏色進(jìn)行混合此再。比如:一個(gè)藍(lán)色的layer和一個(gè)紅色的

? ? layer兩個(gè)圖層進(jìn)行重疊昔搂,中間疊加產(chǎn)生的顏色是混合計(jì)算出來(lái)的。

? ? 混合的算法可以通過(guò)OpenGL的函數(shù)進(jìn)行指定输拇,但是openGL提供的混合算法是有限的摘符,如果,需要更加復(fù)雜的混合算法策吠,一般可以通過(guò)像素著色器進(jìn)行實(shí)現(xiàn)逛裤,性能比原生的混合算法差一點(diǎn)。

14. 變換矩陣

? ? 記錄圖形想發(fā)生平移猴抹、縮放带族、旋轉(zhuǎn)變換,就需要使用變換矩陣

? ? 比如:一個(gè)正方形想要平移蟀给,需要四個(gè)頂點(diǎn)同時(shí)乘以一個(gè)矩陣蝙砌,這個(gè)矩陣?yán)锎鎯?chǔ)的是平移、縮放跋理、旋轉(zhuǎn)變換的結(jié)果择克。

15. 投影矩陣

? ? 用于將3D坐標(biāo)轉(zhuǎn)換為二維屏幕坐標(biāo),實(shí)際線條也將在二維坐標(biāo)下進(jìn)行繪制

16. 渲染上屏/交換緩沖區(qū)

? ? ? ? 渲染緩沖區(qū)一般映射的是系統(tǒng)的資源前普,比如窗口肚邢,如果將圖像直接渲染到創(chuàng)建對(duì)應(yīng)的渲染緩沖區(qū),則可以直接將圖像顯示到屏幕上

? ? ? ? 如果每個(gè)窗口只有一個(gè)緩沖區(qū)拭卿,那么在繪制過(guò)程中屏幕進(jìn)行了刷新骡湖,窗口可以顯示不出完整的圖像

? ? ? ? 為了解決這個(gè)問(wèn)題,常規(guī)的OpenGL程序至少會(huì)有兩個(gè)緩沖區(qū)记劈,顯示在屏幕上的稱為屏幕緩沖區(qū),沒(méi)有顯示在屏幕上的的稱為離屏緩沖區(qū)并巍,在一個(gè)緩沖區(qū)渲染完成后目木,通過(guò)將兩個(gè)緩沖區(qū)交換,實(shí)現(xiàn)圖像在屏幕上顯示懊渡。

? ? ? ? 由于顯示器的刷新一般是逐步進(jìn)行的刽射,因此為了防止交換緩沖區(qū)的時(shí)候,屏幕上下區(qū)域的圖像分屬于兩個(gè)不同的幀剃执,因此交換一般會(huì)等待顯示親刷新完成的信號(hào)誓禁,在顯示器兩次刷新的間隔中進(jìn)行交換,這個(gè)信號(hào)稱為垂直同步信號(hào)肾档,這個(gè)技術(shù)稱為垂直同步摹恰。

? ? ? ? 使用雙緩沖區(qū)和垂直同步技術(shù)之后辫继,由于總是要等待緩沖區(qū)交換之后在進(jìn)行下一幀的渲染,使得幀率無(wú)法完全達(dá)到硬件允許的最高水平俗慈,為了解決這個(gè)問(wèn)題姑宽,引入了三緩沖區(qū)技術(shù),在等待垂直同步時(shí)闺阱,來(lái)回交替渲染兩個(gè)離屏的緩沖區(qū)炮车,而垂直同步發(fā)生時(shí),屏幕緩沖區(qū)和最近渲染完成的離屏緩沖區(qū)交換酣溃,實(shí)現(xiàn)充分利用硬件性能的目的瘦穆。

17. 投影方式

正投影(平行投影):圖片繪制不管遠(yuǎn)近,都是1 :1進(jìn)行繪制赊豌,顯示2D效果扛或。

透視投影:遠(yuǎn)小近大的原則繪制,顯示3D效果

如下圖:camera并不是相機(jī)亿絮,是觀察者視角告喊。

投影方式

18. 視口

19. 坐標(biāo)系

可以分為:物體坐標(biāo)系慣性坐標(biāo)系派昧、世界坐標(biāo)系

坐標(biāo)系的轉(zhuǎn)換如下:

20.OpenGL 坐標(biāo)變換全局圖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末黔姜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蒂萎,更是在濱河造成了極大的恐慌秆吵,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件五慈,死亡現(xiàn)場(chǎng)離奇詭異纳寂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)泻拦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)毙芜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人争拐,你說(shuō)我怎么就攤上這事腋粥。” “怎么了架曹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵份殿,是天一觀的道長(zhǎng)梧疲。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么司蔬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任闻丑,我火速辦了婚禮关顷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘洽腺。我一直安慰自己,他們只是感情好靡砌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布已脓。 她就那樣靜靜地躺著,像睡著了一般通殃。 火紅的嫁衣襯著肌膚如雪度液。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天画舌,我揣著相機(jī)與錄音堕担,去河邊找鬼。 笑死曲聂,一個(gè)胖子當(dāng)著我的面吹牛霹购,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播朋腋,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼齐疙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了旭咽?” 一聲冷哼從身側(cè)響起贞奋,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎穷绵,沒(méi)想到半個(gè)月后轿塔,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仲墨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年勾缭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片目养。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俩由,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出癌蚁,到底是詐尸還是另有隱情幻梯,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布匈勋,位于F島的核電站礼旅,受9級(jí)特大地震影響膳叨,放射性物質(zhì)發(fā)生泄漏洽洁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一菲嘴、第九天 我趴在偏房一處隱蔽的房頂上張望饿自。 院中可真熱鬧汰翠,春花似錦、人聲如沸昭雌。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)烛卧。三九已至佛纫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間总放,已是汗流浹背呈宇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留局雄,地道東北人甥啄。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像炬搭,于是被迫代替她去往敵國(guó)和親蜈漓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355