【Siggraph 2016】Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite

臨江仙
[明代][楊慎]
滾滾長江東逝水,浪花淘盡英雄攒霹。是非成敗轉(zhuǎn)頭空珊拼。青山依舊在,幾度夕陽紅友雳。
白發(fā)漁樵江渚上稿湿,慣看秋月春風(fēng)。一壺濁酒喜相逢押赊。古今多少事饺藤,都付笑談中包斑。

今天來介紹一下寒霜引擎工作室在Siggraph 2016年關(guān)于大氣與天空渲染的實現(xiàn)方案,原文PPT地址涕俗。

寒霜引擎在2014年完成PBR升級罗丰,其畫質(zhì)得到了極大提升,圖中給出的兩張圖片再姑,一張是實拍萌抵,一張是PBR渲染效果,可以看到渲染結(jié)果基本上可以以假亂真元镀。



然而即使這樣逼真的物理渲染效果绍填,依然存在著許多問題,比如環(huán)境光照依然是一些靜態(tài)效果經(jīng)過漸變后得到的:

  • 天空渲染栖疑,通常是通過HDRI貼圖作為天空盒讨永,或者與一個漸變的天空顏色系統(tǒng)相結(jié)合來實現(xiàn)
  • 大氣效果的實現(xiàn),則是通過深度/高度霧以及可選的light shaft效果來完成
    -云層則是使用高分辨率的平面貼圖或者全景(panoramic)貼圖來完成遇革,motion flow作為可選項卿闹。
    這些方式得到的天空效果并不是不好,不過想要實現(xiàn)如現(xiàn)實世界中一樣的隨著時間從早晨到晚上的動態(tài)天空變化就比較困難了萝快,而且為了使得上面的各個元素的效果能夠邏輯自洽也需要比較多的人力成本锻霎。

寒霜想要實現(xiàn)上圖一樣的效果:

  • 如物理一般真實的天空效果
  • 能夠跟隨時辰而動態(tài)變化的天空渲染效果(從圖中看不出來)
  • 跟隨太陽位置而變化的光照效果
  • 能夠與當(dāng)前大氣環(huán)境相匹配的云層表現(xiàn)
  • 可能還要有能夠完美自洽的動態(tài)天氣效果

關(guān)于實現(xiàn)這樣一套天空系統(tǒng),想要得到的愿景包括以下幾點:

  • 幀率不得低于60
  • 渲染結(jié)果必須是PBR的杠巡,包括以下兩點:
    • 物體材質(zhì)不能跟光照存在耦合關(guān)系量窘,即不能將物體材質(zhì)固定在某一種光照情況之下,而需要能夠跟隨光照變化實時的自然的變化
    • 物體材質(zhì)需要完全按照自然界真實的數(shù)據(jù)參數(shù)來設(shè)定氢拥,比如光照強(qiáng)度等都應(yīng)該與實際測試所得數(shù)值保持一致
  • 需要保證各個組件之間的交互是相互一致的:
    • 云層加厚應(yīng)該要能影響到大其散射的效果
    • 場景中透明和不透明物件變化蚌铜,可能會導(dǎo)致全局光照的變化

這里放了一個《鏡之邊緣-催化劑》的視頻,在視頻中嫩海,隨著時間的變化冬殃,太陽位置也相應(yīng)發(fā)生變化,與之相對應(yīng)的變化還包括場景中的光照效果叁怪,天空的顏色审葬,云層,全局光照奕谭,light shaft效果等涣觉,這就是寒霜引擎所表述的PBR天空效果。

這個視頻是Bioware所實現(xiàn)的動態(tài)云層變化的嘗試效果血柳。

PBR天空的實現(xiàn)官册,總體來說可以分成如圖所示的四大塊:

  • 天空
  • 大氣
  • 太陽
  • 體積云

先來看一下天空跟大氣渲染的一些實現(xiàn)思路。

Rayleigh散射
Mie散射

在這里难捌,將大氣層當(dāng)成一個覆蓋在地球周邊的球狀穹頂膝宁,其中的大氣粒子密度隨著海拔的遞增按照指數(shù)形式衰減鸦难。

光照與半徑小于光照波長的粒子的交互可以通過Rayleigh散射來模擬(白天天空呈現(xiàn)藍(lán)色,因為Rayleigh散射與波長的四次方成反比员淫,因此藍(lán)紫光的散射強(qiáng)度較高合蔽,早晨跟傍晚呈現(xiàn)橘紅色,因為此時太陽光在大氣層中傳播路徑較長介返,短波都散射掉了拴事,只剩下長波直達(dá)人眼);

半徑遠(yuǎn)大于波長的粒子與光波的交互可以通過Mie散射來模擬映皆,這類粒子大多聚集在近地位置挤聘,其出現(xiàn)的原因大多與天氣有關(guān),比如霧霾天氣捅彻,比如雨天,沙塵暴等鞍陨。Mie散射可以看成是跟光波波長無關(guān)(實際上還是有關(guān)系的步淹,不過基本可以忽略),發(fā)生Mie散射后的相函數(shù)在光線傳播路徑方向上有較高強(qiáng)度诚撵,而不是以散射粒子為中心均勻分布缭裆,太陽周邊的光暈就是Mie散射后的結(jié)果。

具體應(yīng)該采用哪種散射模型寿烟,可以根據(jù)如下的公式來計算:

  • x << 1, Rayleigh 散射
  • x ~= 1, Mie 散射
    x >> 1, Geometry散射(這個可以看成是反射/折射了澈驼,彩虹的出現(xiàn)就源于此)

關(guān)于大氣散射,目前主要有以下幾類實現(xiàn)方法:

  • 解析模型筛武,這類方法的限制在于只支持近地散射缝其,不支持外太空散射,或者其參數(shù)調(diào)整存在限制等
  • 光譜模型徘六,精度較高内边,但是消耗同樣也高,即使現(xiàn)代硬件平臺想要硬撐也很困難
  • 天空大氣近似模型待锈,Bruneton嘗試將大氣散射中的大部分?jǐn)?shù)據(jù)通過預(yù)處理的方式生成到貼圖中漠其,在運行時直接采樣實現(xiàn)實時渲染,這種方式效率高竿音,效果好和屎,能夠支持multiple scattering,關(guān)于這種方法還有一些變種春瞬,比如Elek給出的方法以放棄地表投影對大氣的影響來減少一維數(shù)據(jù)柴信,而Yusov則給出另一種參數(shù)化方式來進(jìn)一步提升渲染的精度。

寒霜這邊選擇采用Bruneton模型來實現(xiàn)大氣效果:

  • 采用RGB渲染快鱼,而非光譜模型
  • 使用Elek的3D LUT方案颠印,放棄地表對于大氣投影的效果
  • 使用Yusov的參數(shù)化模型

這里簡單介紹一下LUT的生成算法纲岭,具體可以參考Bruneton & Elek的論文。

如圖所示线罕,LUT的三個參數(shù)給出如下:

  • 相機(jī)高度h
  • 相機(jī)與zenith(頭頂正上方)的連線以及與太陽中心的連線的夾角θl
  • 相機(jī)與zenith(頭頂正上方)的連線與相機(jī)觀察方向v的夾角θv

根據(jù)這三個參數(shù)止潮,可以構(gòu)建出transmittance貼圖(用于查詢從A點到B點的散射強(qiáng)度衰減系數(shù))以及單次散射貼圖,而多次散射貼圖則可以通過對這幾個參數(shù)進(jìn)行重復(fù)迭代計算得到(參考Bruneton 08)钞楼。

這里統(tǒng)合了各個參考文獻(xiàn)給出的一些參數(shù)數(shù)據(jù)喇闸,包括不同散射類型的散射系數(shù)Scattering(散射系數(shù)通常會跟溫度以及壓力有關(guān),這里僅僅給出平均值)询件,散射傳播途徑中的由于吸收與outscattering而導(dǎo)致的衰減系數(shù)Extinction以及大氣濃度隨著海拔高度變化的distribution數(shù)據(jù)燃乍。

這里還給出了OZone(臭氧層)的相關(guān)參數(shù)),臭氧層是清晨或者傍晚的時候天空依然能夠保持湛藍(lán)的主要原因(否則藍(lán)光就被散射到太空了)宛琅,這里給出的數(shù)據(jù)是通過測量得到的刻蟹。

本文中的一些符號約定

另外需要注意的是,這里給出的Rayleigh散射數(shù)據(jù)并不包含全光譜的嘿辟,知識給出了三原色RGB的數(shù)據(jù)(波長分別為:680, 550 and 440nm)

輕度Rayleigh散射效果
普通情況下的Rayleigh散射效果
重度Rayleigh散射效果
無Mie散射效果
普通天氣下的Mie散射效果
重度污染天氣的Mie散射效果
OZone Scattering Close
OZone Scattering Open

這里給出了臭氧層散射開關(guān)效果對比舆瘪,通常來說臭氧層處于海平面往上32KM的位置,不過按照這個規(guī)律來計算臭氧層散射得到的效果跟預(yù)期的有出入(猜測是因為使用的是RGB三原色而非全光譜渲染的原因)红伦,因此最終在渲染的時候?qū)⑵淞W臃植嫉韧赗ayleigh散射的粒子分布英古。

如上圖所示,最終的渲染輸出實現(xiàn)可以按照以下流程完成:
1.先渲染不透明物體
2.再渲染天空昙读,并渲染天空的過程中從散射LUT中提取大氣散射數(shù)據(jù)召调,并將之作用到天空各個像素的輸出顏色之上

在上述渲染中,用到的散射LUT是兩張3D的大氣透視貼圖蛮浑,3D貼圖的覆蓋范圍都正好契合進(jìn)相機(jī)的Frustum唠叛,如上圖所示,每張貼圖的分辨率為32x32x16陵吸,其中散射貼圖存儲的對應(yīng)位置的散射光照亮度數(shù)據(jù)玻墅,而衰減貼圖存儲的則是從當(dāng)前點到相機(jī)這段距離的傳輸衰減系數(shù)。

這里需要注意的是壮虫,此處存儲的散射數(shù)據(jù)是未曾考慮散射遮擋情況的澳厢,因此其實現(xiàn)效果中是不支持light shaft的,要想實現(xiàn)效果令人滿意的light shaft囚似,需要增加的計算量較高剩拢,性價比太低。

大氣散射數(shù)據(jù)的計算是在渲染天空的階段進(jìn)行的饶唤,對于不透明物體徐伐,這個數(shù)據(jù)是在ps中疊加到渲染結(jié)果中的,而對于透明物體上的大氣散射則是在vs中疊加上去的募狂。這樣做的好處在于办素,既能讓透明物體的渲染效果能夠跟整體場景相一致而不至于太突兀角雷,又不會因此導(dǎo)致較高的消耗。

這里放了一個太陽位置隨著時間而變化的動態(tài)效果視頻性穿,在這個視頻中勺三,隨著太陽位置的變化,大氣散射效果需曾,天空環(huán)境貼圖吗坚,局部反射貼圖以及動態(tài)GI效果也會相應(yīng)變化。

這里來介紹一下這個實現(xiàn)方案的性能消耗情況呆万,總的來說商源,一旦LUT貼圖生成完成了,太陽位置就可以自由移動而不需要考慮新的消耗(太陽位置移動不是會導(dǎo)致陽光方向發(fā)生變化么谋减,這個參數(shù)的變化難道不會觸發(fā)LUT的更新嗎)牡彻,只是當(dāng)LUT的參數(shù)發(fā)生變化時,才需要觸發(fā)LUT的更新出爹,而LUT的更新是一個消耗比較高的操作讨便。

為了降低LUT更新的消耗,這里會將整個LUT的更新消耗分散到多幀完成以政,甚至可以在原LUT貼圖上進(jìn)行,每幀只進(jìn)行部分區(qū)域的更新伴找,輸出的結(jié)果在相鄰數(shù)據(jù)插值即可盈蛮,得到的效果還算平滑。通過這樣處理之后技矮,LUT更新的消耗基本上就可以接受了抖誉。

太陽渲染

前面說到,美術(shù)同學(xué)通常只需要給出地表處的陽光照度衰倦,之后程序這邊根據(jù)頭頂正上方光照的衰減系數(shù)以及太陽的solid angle袒炉,就可以計算出太陽在外太空的亮度數(shù)據(jù)。

得到太陽在外太空的亮度數(shù)據(jù)之后樊零,就可以計算出當(dāng)前時刻任意地表的陽光照度數(shù)據(jù)我磁。

這里假設(shè)太陽在天空中的尺寸非常之小,在這個假設(shè)下驻襟,可以用一個與solid angle的簡單點乘來近似模擬solid angle范圍內(nèi)的積分操作夺艰。

太陽亮度數(shù)據(jù)與照度數(shù)據(jù)可以通過如下過程計算得到:
首先計算出頭頂正上方的大氣層衰減系數(shù),之后將這個衰減系數(shù)以及solid angle代入到公式1來近似求得外太空的陽光亮度數(shù)據(jù):

之后計算出太陽中心位置到當(dāng)前地表的衰減系數(shù)沉衣,將之代入到公式2郁副,求得當(dāng)前地表位置的光照照度數(shù)據(jù):

拿到太陽在外太空的亮度數(shù)據(jù)之后,就可以據(jù)此繪制太陽disk效果了豌习,不過如果不考慮大氣對于太陽光線傳播過程中的衰減的話存谎,繪制得到的效果就會過亮拔疚,如上圖所示。

這個問題也很好解決既荚,只需要對太陽disk上的每個像素的照度數(shù)據(jù)乘上對應(yīng)的衰減系數(shù)即可稚失。

體積云實現(xiàn)

目前業(yè)界有比較多的實現(xiàn)體積云的算法:
Harris給出的實現(xiàn)是公告板+粒子系統(tǒng)的方式,這種算法性能較高固以,不過其效果已經(jīng)無法滿足當(dāng)代游戲的要求了墩虹。

Bouthors給出的是一種raymarching+高精度貼圖+網(wǎng)格模型的混合實現(xiàn)算法,這種算法得到的結(jié)果具有較高的精度憨琳,不過性能消耗相應(yīng)也不低诫钓,此外這種算法給出的參數(shù)調(diào)整起來不是很方便。

Yusov給出的是一種基于粒子系統(tǒng)的實現(xiàn)算法篙螟,這種算法會預(yù)先計算出粒子元素上的散射積分結(jié)果并存儲下來菌湃,在運行的時候根據(jù)參數(shù)進(jìn)行采樣即可。這種算法的不足在于其只能實現(xiàn)特定風(fēng)格的云層效果遍略,而不能根據(jù)需要實現(xiàn)各種不同風(fēng)格的云層效果惧所。

Schneider在15年提出的基于分層的raymarching實現(xiàn)算法(地平線零所使用的算法)可以實時根據(jù)天氣情況以及空間位置生成動態(tài)的云層效果,寒霜引擎的云層實現(xiàn)的基礎(chǔ)就是這種算法绪杏。

寒霜引擎在Schneider算法的基礎(chǔ)上做了一些改進(jìn)下愈,主要包括以下一些細(xì)節(jié)的修正:光照,散射能量守恒蕾久,動態(tài)天氣調(diào)整以及隨著一天內(nèi)時辰而變化势似。

Transmittance
Ambient
Sun Scattering
Cloud self-Shadow
Phase function
Reality Comparison

云層的實現(xiàn)效果主要基于物理的散射,吸收以及相函數(shù)等材質(zhì)參數(shù)來控制調(diào)整僧著,其實現(xiàn)的效果與下面幾項細(xì)分參數(shù)之間的關(guān)系用文字闡述如下:
Transmittance用于給出云層后的遮擋情況(Occlusion of what is behind cloud)
Ambient lighting(比如天光等)將會與云層產(chǎn)生散射交互
Light scattering履因,太陽光導(dǎo)致的大氣散射效果也需要考慮進(jìn)去,不過單只加上這一項盹愚,其效果可能不佳栅迄,還需要考慮由于衰減而導(dǎo)致的云層自陰影(cloud self shadow)影響(參考Hillaire15)
Phase function,云層上發(fā)生的大氣散射效果并不是沿著各個方向均勻發(fā)生的皆怕,而是帶有一定的方向性毅舆,通常沿著太陽光方向的散射強(qiáng)度會高一點,從而導(dǎo)致通常我們說的silver lining效果端逼。

這里給出了Cloud Ray marching實現(xiàn)代碼朗兵,Ray marching的輸出結(jié)果正確的應(yīng)該是將散射數(shù)據(jù)與衰減數(shù)據(jù)相乘并沿著ray marching路徑進(jìn)行積分,不過在shader中是不可能積分的顶滩,因此改成累加余掖,這里給出的算法是將兩個ray marching點之間的step范圍的散射數(shù)據(jù)用一個常量來近似,不過如果采用直接相乘的方式其實是不正確的,上面給出的積分公式就可以看出盐欺,在當(dāng)前step范圍內(nèi)的積分結(jié)果并不等于衰減系數(shù)與端點散射強(qiáng)度的乘積赁豆。這里有個ShaderToy 的Demo可以用來驗證這個觀點。

這里給出錯誤計算方法的效果圖冗美,因為并非能量守恒魔种,因此對于Ambient的散射來說,其結(jié)果尤其怪異粉洼,可以看到效果底部數(shù)據(jù)過于明亮了节预。

這里給出的是另一種錯誤實現(xiàn)方式,這種方式先計算了衰減系數(shù)属韧,再做乘法安拟,得到的效果整體偏暗,且云層看起來很臟宵喂。

這是按照前面推導(dǎo)的積分公式計算得到的效果糠赦,其效果滿足能量守恒的定律,看起來就比較正常了锅棕。

上面的效果圖說明了拙泽,錯誤的算法在使用較多的采樣點的時候可以逐漸逼近正確的輸出結(jié)果。

云層渲染中一個非常重要的元素就是光照散射在云層上的相函數(shù)裸燎,正確的相函數(shù)是實現(xiàn)各種真實感效果(silver lining顾瞻,pseudo-specularity,glory haloes等)的關(guān)鍵德绿,上圖中藍(lán)色部分是云層相函數(shù)的示意圖朋其。

寒霜引擎中是通過兩個HG lobe來實現(xiàn)對Cloud Phase Function的擬合的,不過如圖所示脆炎,其實現(xiàn)的效果在backward scattering(綠色方框標(biāo)注區(qū)域)的逼近效果比較差,寒霜那邊的程序同學(xué)認(rèn)為是缺少了對multi scattering部分的考慮導(dǎo)致氓辣。

在最后秒裕,程序這邊將HG lobe的控制參數(shù)暴露給美術(shù)同學(xué),美術(shù)同學(xué)可以在編輯的時候自行調(diào)整钞啸,從而修正相函數(shù)forward scattering跟backward scattering的能量几蜻,這種做法其實也比較符合現(xiàn)實世界中云層的相函數(shù)是隨時間與外界環(huán)境參數(shù)而變化的事實。

single forward scattering
2 lobe, backward + forward体斩,由于部分backward scattering+energy conservation梭稚,光照強(qiáng)度會有所降低
single forward scattering + sun behind the camera, ambient make cloud flat
backward + forward scattering

在進(jìn)行云層渲染的時候,希望能夠做到不論在何種天氣與環(huán)境參數(shù)下絮吵,都能夠保持云層跟周邊環(huán)境的一致性弧烤,上面的截圖中,由于沒有給云層施加大氣散射計算蹬敲,導(dǎo)致其效果跟周邊環(huán)境對不上暇昂,從而看起來略微怪異莺戒。

Average Depth效果

不過如果要為云層上的每一點都進(jìn)行Aerial Perspective(簡稱AP)計算的話,消耗又會過高急波,此處寒霜引擎給出了一種折中的做法从铲,即依據(jù)對應(yīng)的transimittance對Depth進(jìn)行加權(quán)(加權(quán)范圍為以當(dāng)前Cloud像素為中心,以某個值為半徑的澄暮,云層面向相機(jī)這一面名段,即front interface上的采樣點),以求得Cloud front interface的平均depth值泣懊,并取這個depth處的AP數(shù)據(jù)作為最終輸出的AP數(shù)據(jù)(包括散射數(shù)據(jù)與Transmittance數(shù)據(jù))

Depth加權(quán)計算公式

上面給出了單次AP計算之后的Cloud效果伸辟,看起來比前面的要好多了,需要注意的是嗅定,當(dāng)云層覆蓋面積不斷增加直至完全蓋住天空自娩,在這個過程中AP對于sky/sun的scattering數(shù)據(jù)將逐漸減少(比較合理,被蓋住了渠退,哪里來的inscattering忙迁?),而更多的需要考慮陽光穿過云層之后的光照數(shù)據(jù)碎乃。

因此這里需要將云層的覆蓋率納入AP計算的考量姊扔,不過由于云層會有天光與陽光穿透的光照輸出,因此在計算AP的時候也應(yīng)該將云層的散射亮度作為AP計算的光源梅誓。

在實際計算的時候恰梢,為了實現(xiàn)上述思路,會以相機(jī)為中心梗掰,up vector作為法線嵌言,對半球進(jìn)行積分,積分的結(jié)果包括cloud coverage與cloud scattering luminance及穗,假設(shè)陽光的phase function在各個方向都是均勻分布的摧茴,那么就可以將之前計算得到的Sun scattering數(shù)據(jù)乘上1 - cloud coverage作為Sun scattering part,之后加上cloud scattering part埂陆,作為最終總的scattering part苛白。

transimittance數(shù)據(jù)不受上述修正影響,因為這個數(shù)據(jù)只依賴于空氣中的粒子濃度與傳播距離焚虱,而這兩項數(shù)據(jù)都沒有發(fā)生變化购裙。

另一種實現(xiàn)思路則是通過cloud shadow來模擬大氣層中的cloud volumetric occlusion,這種實現(xiàn)對于不同位置的cloud coverage數(shù)據(jù)變化較大的情況會更合理一些鹃栽。

image.png

這里是實現(xiàn)結(jié)果躏率,在原文給出的視頻中,太陽未被遮擋前,大其散射帶著陽光的橙色(Mie Scattering)禾锤,被云層擋住后私股,就逐漸被穿過云層的天光+陽光scattering所取代,而呈現(xiàn)一種淡藍(lán)色(天光)恩掷,當(dāng)然倡鲸,如果云層足夠厚的話,大氣散射的效果可能會偏白(穿破云層的天光以及陽光貢獻(xiàn)較小了)黄娘。

XBox One性能表現(xiàn)

下面介紹一下隨著太陽升起時最終的天空效果表現(xiàn)

image.png

這里用寒霜的大氣散射模型模擬了一下火星的天空效果峭状,從視頻中可以看到火星上紅色的天空與藍(lán)色的日落效果,說明這個模型還是比較成功的逼争。

結(jié)論
生效產(chǎn)品
Future Work
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末优床,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子誓焦,更是在濱河造成了極大的恐慌胆敞,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杂伟,死亡現(xiàn)場離奇詭異移层,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)赫粥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門观话,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人越平,你說我怎么就攤上這事频蛔。” “怎么了秦叛?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵晦溪,是天一觀的道長。 經(jīng)常有香客問我挣跋,道長尼变,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任浆劲,我火速辦了婚禮,結(jié)果婚禮上哀澈,老公的妹妹穿的比我還像新娘牌借。我一直安慰自己,他們只是感情好割按,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布膨报。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪现柠。 梳的紋絲不亂的頭發(fā)上院领,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機(jī)與錄音够吩,去河邊找鬼比然。 笑死,一個胖子當(dāng)著我的面吹牛周循,可吹牛的內(nèi)容都是我干的强法。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼湾笛,長吁一口氣:“原來是場噩夢啊……” “哼饮怯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嚎研,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蓖墅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后临扮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體论矾,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年公条,在試婚紗的時候發(fā)現(xiàn)自己被綠了拇囊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡靶橱,死狀恐怖寥袭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情关霸,我是刑警寧澤传黄,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站队寇,受9級特大地震影響膘掰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜佳遣,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一识埋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧零渐,春花似錦窒舟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽银还。三九已至,卻和暖如春洁墙,著一層夾襖步出監(jiān)牢的瞬間蛹疯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工热监, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留捺弦,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓狼纬,卻偏偏與公主長得像羹呵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疗琉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容