問題タブ [skeffectnode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sprite-kit - SpriteKit を使用したカスタム CIFilter
CIFilter
SpriteKit で独自のカスタムを実装しようとしています。私が達成したいのは、私のカスタムCIFilter
を のフィルターとして使用することSKEffectNode
です。
非常に単純なテスト フィルター (ピクセル値を返すだけ) を作成しましたが、.NET で正常に動作しQuartzComposer
ます。
開発ガイドに従って、CIFilter
サブクラスを作成し、フィルターを登録し、実装を提供filterWithName
しoutputImage
、初期化と初期化を行いました。
ただし、 で を使用しようとするとCIFilter
、SKEffectNode
出力画像が得られません (空白の画像 -clearColor
塗りつぶされた空白)。
SKEffectNode
別の(組み込み)に切り替えると、CIFilter
すべてが期待どおりに機能するため、セットアップに問題はないと思います。
また、.cikernel は Quartz Composer で正常に動作するため、問題はないと思います (また、サンプルから pixelValue を返すのは実際には 1 行だけです...)。
サブクラスの init と initialize にブレークポイントを設定するCIFilter
と、両方が呼び出され、カーネルが正しいコード文字列で初期化され、それ以降はすべてうまくいきます。
しかし、私の出力は腹立たしいほど空白のままです...
custom CIFilters
onの使用に成功した人はいSKEffectNodes
ますか?
ありがとう!
編集:使用する前に初期化するために呼び出すことを忘れていました[MyFilterSubclass class]
。また、ブレークポイントを設定し、-(CIImage *)outputImage
フレームごとに呼び出されるため、フィルターが正しく設定され、フレームごとに結果を計算しているように見えますが、結果はどういうわけかSKEffectNode
...ヘルプに使用されません:( !
ios - SKEffectNode に問題がある
私はAppleのSpriteKitのドキュメントに従っています.SKEffectNodeを使用しようとしていますが、私の問題は効果が適用されないことです! これが私のコードです:
アプリを実行すると、ぼかし効果なしで宇宙船が表示されます。
ios - テクスチャ アニメーションを含む SKEffectNode が機能しない
これを試して:
- SKEffectNode クラスを作成する
- 8 フレーム程度の小さなアニメーションを作成し、atlas フォルダーに入れます。
- このコードをクラスの初期化に追加します
初期クラス
このノードをシーンに追加します。結果は何もレンダリングされません。まだ効果を有効にしていないことに注意してください。
なぜ?
ios - SKEffectNode でカスタム CIColorCube フィルターを設定する
黒の背景に緑のピクセルを透明にする SKEffectNode を作成しようとしています。このことを理解するためのテスト目的で、次のコードが SKEffectNode のサブツリー内で何も透明にしないことを確認したいと思います。次のコードは、実際には子が描画されないようにし、次のエラーを吐き出します。
CIColorCube inputCubeData is not of the expected length.
を作成するメソッドです。SKEffectNode
それが私がフィルターをセットアップする方法です(ほとんど、またはあえて言うなら、このコードはすべてAppleの開発ドキュメントにあります)。
私は問題を見つけることができません。CoreImage の経験はあまりありません。誰?
更新 1
CIFilter 全体を独自のクラスにエクスポートしてみました。
実行時にまだ同じエラーが発生する
ios - SpriteKit - SKEffectnode ブレンドモード、ラスタライズ、およびフレーム レート
SKEffectnode を使用して、横スクロール ゲームで簡単な照明を実行しようとしています。まず、グレーのフルスクリーン スプライト ノードを作成し、ブレンド モードを加算に設定して、エフェクト ノードの子として追加します。次に、軽いテクスチャを持つスプライト ノードをエフェクト ノードの子として追加します。最後に、エフェクト ノードのブレンド モードを乗算に設定し、子ノードとしてシーンに追加します。このようなもの:
したがって、私の問題は、エフェクト ノードのブレンド モードが何もしていないように見えることです。アルファブレンドモードか何かで動かなくなったように。ただし、shouldRasterize を YES に設定すると、ブレンド モードが期待どおりに機能し始めます。これがなぜなのか誰か知っていますか?
また、エフェクト ノードを使用してこのようなフルスクリーン エフェクトを追加すると、フレーム レートが完全に破壊されます。特に、エフェクト ノードの移動を開始した場合 (またはフレームごとに新しいノードを作成した場合)。しかし、スプライト キットでこのような照明を行う方法は他にありません。私は基本的にフレームごとにライティング マスクを作成し、それをシーンのフレーム バッファーに乗算したいと考えています。スプライト キットを使用してこのようなことは可能ですか? または、カスタム シェーダーを使用して Cocos2d を調べる必要がありますか?
ios - SKScene を SKTexture にレンダリングしますか?
スプライト キットに、画面 (現在SKScene
レンダリングされているすべてのノード) をキャプチャしSKTexture
て、CIFilter を適用し、SKTexture を新しい に割り当てる方法はありSKSpriteNode
ますか?
をノード ツリーの親として設定し、フィルタなどを適用してその方法で結果を取得できることはわかっていますが、後で再利用できるフィルタ(または)SKEffectNode
が本当に必要ですか? SKTexture
SKSpriteNode
編集:
考えられる解決策:
うん、それは動作します:
ios - SKEffectNode を使用して SKShapeNode を段階的にぼかします
プログラムで SKShapenode をぼかしようとしています。ただし、シェイプノードを約 1 秒かけて徐々にぼかしていきます。どうすればそれを達成できますか?現在のコードでは、すぐにぼやけます。