SceneKit_入門01_旋轉(zhuǎn)人物
SceneKit_入門02_如何創(chuàng)建工程
SceneKit_入門03_節(jié)點(diǎn)
SceneKit_入門04_燈光
SceneKit_入門05_照相機(jī)
SceneKit_入門06_行為動(dòng)畫
SceneKit_入門07_幾何體
SceneKit_入門08_材質(zhì)
SceneKit_入門09_物理身體
SceneKit_入門10_物理世界
SceneKit_入門11_粒子系統(tǒng)
SceneKit_入門12_物理行為
SceneKit_入門13_骨骼動(dòng)畫
SceneKit_中級(jí)01_模型之間的過渡動(dòng)畫
SceneKit_中級(jí)02_SCNView 詳細(xì)講解
SceneKit_中級(jí)03_切換照相機(jī)視角
SceneKit_中級(jí)04_約束的使用
SceneKit_中級(jí)05_力的使用
SceneKit_中級(jí)06_場(chǎng)景的切換
SceneKit_中級(jí)07_動(dòng)態(tài)修改屬性
SceneKit_中級(jí)08_陰影詳解
SceneKit_中級(jí)09_碰撞檢測(cè)
SceneKit_中級(jí)10_濾鏡效果制作
SceneKit_中級(jí)11_動(dòng)畫事件
SceneKit_高級(jí)01_GLSL
SceneKit_高級(jí)02_粒子系統(tǒng)深入研究
SceneKit_高級(jí)03_自定義力
SceneKit_高級(jí)04_自定義場(chǎng)景過渡效果
SceneKit_高級(jí)05 檢測(cè)手勢(shì)點(diǎn)擊到節(jié)點(diǎn)
SceneKit_高級(jí)06_加載頂點(diǎn)、紋理扬卷、法線坐標(biāo)
SceneKit_高級(jí)07_SCNProgram用法探究
SceneKit_高級(jí)08_天空盒子制作
SceneKit_高級(jí)09_霧效果
SceneKit_大神01_掉落的文字
SceneKit_大神02_彈幕來襲
SceneKit_大神03_navigationbar上的3D文字
本節(jié)學(xué)習(xí)目標(biāo)
在SceneKit 游戲引擎中如何使用濾鏡
其實(shí)很簡(jiǎn)單的
需要重點(diǎn)關(guān)注一個(gè)屬性和一個(gè)類
- SCNNode 的一個(gè)屬性
open var filters: [CIFilter]?
- CIFilter
內(nèi)置的核心圖像濾鏡處理,這個(gè)類可以創(chuàng)建很多濾鏡效果,當(dāng)然我們也可以自定義濾鏡效果,關(guān)于這個(gè)類的詳細(xì)使用情況請(qǐng)查閱蘋果官方文檔
舉個(gè)簡(jiǎn)單的例子告訴你怎么使用
- 第一步 創(chuàng)建工程(略)
- 第二步 導(dǎo)入框架SceneKit
- 第三步 創(chuàng)建游戲?qū)S靡晥D
let scnView = SCNView(frame: self.view.bounds, options: [SCNView.Option.preferredRenderingAPI.rawValue:true])
scnView.backgroundColor = UIColor.black
self.view.addSubview(scnView)
- 第四步 創(chuàng)建游戲場(chǎng)景
let scene = SCNScene()
scnView.scene = scene
- 第五步 創(chuàng)建照相機(jī)
let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode)
- 第六步 創(chuàng)建一個(gè)正方體
let box = SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0)
box.firstMaterial?.diffuse.contents = "1.png"
let boxNode = SCNNode(geometry: box)
boxNode.position = SCNVector3Make(0, 0, -2)
scene.rootNode.addChildNode(boxNode)
可以添加一個(gè)環(huán)境光源如果不手動(dòng)創(chuàng)建環(huán)境光,系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)環(huán)境光,注意一點(diǎn),系統(tǒng)這個(gè)光源是沒有辦法獲取的
這個(gè)時(shí)候,你可以運(yùn)行一下
上面是基本的東西,相信所有跟著我的教程學(xué)習(xí)的所有伙伴都已經(jīng)完全掌握了,那么我們接下來就演示一下如何對(duì)我們這個(gè)圖片進(jìn)行濾鏡
- 濾鏡1
let filter = CIFilter(name: "CIEdgeWork")!
boxNode.filters = [filter]
- 濾鏡 2
let filter = CIFilter(name: "CIGaussianBlur")!
filter.setDefaults()
filter.setValue(10, forKey: kCIInputRadiusKey)
boxNode.filters = [filter]
- 濾鏡 3
let filter = CIFilter(name: "CISepiaTone")!
filter.setDefaults()
filter.setValue(0.8, forKey: kCIInputIntensityKey)
boxNode.filters = [filter]
- 濾鏡 4
let filter = CIFilter(name: "CISepiaTone",withInputParameters: [kCIInputIntensityKey: 5])!
boxNode.filters = [filter]
- 濾鏡 5
let filter = CIFilter(name: "CIPixellate",
withInputParameters: [kCIInputScaleKey: 10.0])!
boxNode.filters = [filter]
- 濾鏡 6
let filter = CIFilter(name: "CIPhotoEffectProcess")!
boxNode.filters = [filter]
我們知道濾鏡屬性是一個(gè)數(shù)組,那么必然可以組合使用,我們下面演示一下
let filter1 = CIFilter(name: "CIPixellate",
withInputParameters: [kCIInputScaleKey: 10.0])!
let filter2 = CIFilter(name: "CIPhotoEffectProcess")!
boxNode.filters = [filter1,filter2]
偷偷的告訴你
系統(tǒng)框架提供了很多濾鏡效果,上面只是冰山一角,應(yīng)該都滿足大多數(shù)的濾鏡效果,如果你真的需要自定義濾鏡效果,那你可以使用 CIKernel,CISampler, CIFilterShape 他們 或者GLSL 進(jìn)行自定義濾鏡設(shè)計(jì)
參考
CIAdditionCompositing //影像合成
CIAffineTransform //仿射變換
CICheckerboardGenerator //棋盤發(fā)生器
CIColorBlendMode //CIColor混合模式
CIColorBurnBlendMode //CIColor燃燒混合模式
CIColorControls
CIColorCube //立方體
CIColorDodgeBlendMode //CIColor避免混合模式
CIColorInvert //CIColor反相
CIColorMatrix //CIColor矩陣
CIColorMonochrome //黑白照
CIConstantColorGenerator //恒定顏色發(fā)生器
CICrop //裁剪
CIDarkenBlendMode //亮度混合模式
CIDifferenceBlendMode //差分混合模式
CIExclusionBlendMode //互斥混合模式
CIExposureAdjust //曝光調(diào)節(jié)
CIFalseColor //偽造顏色
CIGammaAdjust //灰度系數(shù)調(diào)節(jié)
CIGaussianGradient //高斯梯度
CIHardLightBlendMode //強(qiáng)光混合模式
CIHighlightShadowAdjust //高亮陰影調(diào)節(jié)
CIHueAdjust //飽和度調(diào)節(jié)
CIHueBlendMode //飽和度混合模式
CILightenBlendMode
CILinearGradient //線性梯度
CILuminosityBlendMode //亮度混合模式
CIMaximumCompositing //最大合成
CIMinimumCompositing //最小合成
CIMultiplyBlendMode //多層混合模式
CIMultiplyCompositing //多層合成
CIOverlayBlendMode //覆蓋疊加混合模式
CIRadialGradient //半徑梯度
CISaturationBlendMode //飽和度混合模式
CIScreenBlendMode //全屏混合模式
CISepiaTone //棕黑色調(diào)
CISoftLightBlendMode //弱光混合模式
CISourceAtopCompositing
CISourceInCompositing
CISourceOutCompositing
CISourceOverCompositing
CIStraightenFilter //拉直過濾器
CIStripesGenerator //條紋發(fā)生器
CITemperatureAndTint //色溫
CIToneCurve //色調(diào)曲線
CIVibrance //振動(dòng)
CIVignette //印花
CIWhitePointAdjust //白平衡調(diào)節(jié)
代碼庫,聽說經(jīng)常給人點(diǎn)贊都變帥了!