問題タブ [pointer-aliasing]

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.

0 投票する
3 に答える
175 参照

c++ - 「vector::insert」のようなものを正しく(しかし効率的に)実装する方法は?(ポインタエイリアシング)

vector:のこの架空の実装を考えてみましょう。

問題

ここで直面する微妙な問題があります。同じベクトル内のアイテムを参照する可能
性がありますbeginend where

たとえば、ユーザーが次のように言った場合:

Itがポインタタイプでない場合は、問題ありません。
しかし、私たちは知らないので、それが[begin, end)すでにベクトル内にある範囲を参照していないことを確認する必要があります。

しかし、これをどのように行うのでしょうか?C ++によると、同じ配列を参照していない場合、ポインターの比較は未定義になります。
そのため、コンパイラは、アイテムがエイリアスしないと誤って通知する可能性がありますが、実際にはエイリアスしているため、不要なO(n)の速度が低下します。

考えられる解決策と警告

1つの解決策は、ベクトル全体を毎回コピーし、新しいアイテムを含めてから、古いコピーを破棄することです。

ただし、上記の例のように、すでに十分な容量がある場合でも、1つのアイテムを挿入するためだけに1000のアイテムをコピーするシナリオでは、これは非常に低速です。

この問題を(正しく)効率的に解決する一般的な方法はありますか?つまり、エイリアシングが何もない場合にO(n)の速度低下に悩まされることはありませんか?

0 投票する
1 に答える
363 参照

performance - GCC C99 でのポインターの厳密なエイリアシングの例、パフォーマンスの違いなし

C99 で厳密なエイリアシングがパフォーマンスに与える影響を理解しようとしています。私の目標は、プログラムで多くの時間を費やすベクトル ドット積を最適化することです (プロファイリングしました!)。エイリアシングが問題である可能性があると考えましたが、次のコードは、サイズが 1 億のベクトルであっても、標準のアプローチと厳密なエイリアシング バージョンの間に実質的な違いを示していません。また、ローカル変数を使用してエイリアシングを回避しようとしましたが、同様の結果が得られました。

何が起こっていますか?

OSX 10.7.4 で gcc-4.7 を使用しています。結果はマイクロ秒単位です。

restrict.c (このコードには数百 MB の RAM が必要であることに注意してください):

0 投票する
1 に答える
1301 参照

opengl - glsl でエイリアシングを回避してテクスチャの上にプロシージャル ラインを描画する

私の目標は、アスファルトの道路に白い線を引くことです。道路の性質は変化するので、アスファルトと白線の両方を表すテクスチャだけではありえません。現在のアプローチは、アスファルト テクスチャを適用し、他の 2 つのテクスチャ座標にいくつかの情報をコーディングすることです。ピクセル シェーダーでは、これらの座標を読み取って、そのフラグメントを白にするかどうかを決定します。

これにより、高レベルのエイリアシングが発生します。そして、それが私が解決したい問題です。

smothsetp または線形補間を適用して、線の「白さ」を変更しています。また、カメラからの距離に応じて幅と色を変更しました。これは少しは役に立ちますが、遠く離れた場所では、醜いエイリアスの線がまだ残っています。

どうやってこれを続けますか?滑らかな白い線を表現し、テクセルにアクセスするテクスチャを用意したほうがよいでしょうか? 隣接するテクセルにアクセスするバイリニア フィルターを実装する必要がありますか?

0 投票する
2 に答える
1306 参照

c++ - 線形サンプリングされたガウスぼかし品質の問題

私は最近、この記事に基づいて線形サンプリングされたガウスぼかしを実装しました。

線形サンプリング ガウスぼかし

全体的にはうまくいきましたが、テキストにわずかなエイリアシングがあり、ピクセルの集まりが薄いようです。これの原因についてはかなり困惑しています。それは私のシェーダーまたはウェイト計算の問題ですか、それともこのメソッドを使用することの継承の欠点ですか?

バイリニア フィルタリングを使用する代わりに各ピクセルを定期的にサンプリングする場合、この問題に遭遇しないことを付け加えたいと思います。

どんな洞察も大歓迎です。重みを計算する方法のコード サンプルを次に示します。

そして、これがフラグメント シェーダーです (このシェーダーには別の垂直バージョンもあります)。

この問題を示すスクリーンショットは次のとおりです。

線形サンプルのガウスぼかしの問題

0 投票する
1 に答える
35 参照

java - setObject() メソッドとエイリアシング

タイプ POINT (オブジェクト) の 2 つの属性を持つ LINE クラスがあります。

このステートメントを作成すると、エイリアシングが発生しますか?

または、次のように新しいオブジェクトを作成する必要がありますか?

事前に感謝します。

0 投票する
1 に答える
1538 参照

xcode - Cocos2Dのギザギザのエッジ-アンチエイリアスの問題?

現在、グラフ(エッジで接続されたノード)を使用するゲームを開発しており、ノードを移動できるようにしたいと考えています。ノードは移動しています(タッチに応答)が、ノードが移動した結果としてエッジ(.png画像で初期化)が再レンダリングされると、ギザギザに見えます。エイリアシングとアンチエイリアシングを試してみましたが、何をしてもエッジがギザギザになります。

ここで、エッジ画像を(画像ファイルを使用して)初期化します。

そして、ここでエッジ図面を更新します(nextFrameメソッドの後半を使用):

Cocos2Dv2.0とXCodev4.5を使用しています。

どんな助けでも大歓迎です。ありがとうございました!

更新:問題を示す写真:

ここに画像の説明を入力してください

0 投票する
1 に答える
2611 参照

unity3d - CG:fmodを使用してテクスチャを繰り返すと、エイリアシングが発生します

Cg使用してシェーダーを作成していますUnity3D

fmod関数を使用して、軸に沿ってテクスチャを繰り返します(基本的に、でテクスチャスケールを設定することで達成できるのと同じ効果ですMaterialTextureWrapMode.Repeat

これはfragment shader、エラーを再現できるコードです。

基本的には機能しているように見えますが、0のfmod関数に対応するある種のエイリアシング(ストリップパターン)を生成します。これがいくつかのスクリーンショットです:

ここに画像の説明を入力してください

上の画像は、テクスチャが正しく繰り返される様子を示しています。出現したストリップエイリアシングパターンのズームは次のとおりです。

ここに画像の説明を入力してください

デバッグしようとしましたが、何が起こっているのか正確に理解できません。誰でも私に何が問題なのか、そして最終的にはそれをどのように解決するのか教えてもらえますか?


編集:ミップマップの生成を無効にすると、この問題が解決することがわかりました。ところで、距離が増加している間、縮小エイリアシングの問題を回避するためにミップマップを使用したいと思います。誰かが何か考えがありますか?

0 投票する
2 に答える
441 参照

pointers - CUDA はポインタ エイリアスをサポートしていますか?

これを尋ねる理由は、コードに奇妙なバグがあり、エイリアシングの問題である可能性があると思われるためです。