質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • C#

    6847questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Unity

    3803questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • DirectX

    66questions

    DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

unityでのDirectXを用いた物体描画

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 489

abc_oxox

score 14

unityでDirectXを用いて物体を描画したいのですが,うまくいきません.

http://tips.hecomi.com/entry/2016/06/06/003119
上記のリンク先に掲載されているサンプルプログラムを参考に書いてみたのですが,表示できませんでした.

描画しようとしたのは上記のリンク先の"Mesh Topology"というところで,以下のようなコードを書きました.(リンク先のコードをまるまるコピーしています)

using UnityEngine;

public class ProceduralPointMesh : MonoBehaviour
{
    void Start()
    {
        var mesh = new Mesh();

        var count = 100;
        var verts = new Vector3[count];
        var indices = new int[count];

        for (var i = 0; i < count; ++i) {
            var phi = i * Mathf.PI / count;
            verts[i] = new Vector3(Mathf.Cos(phi), Mathf.Sin(phi), 0.0f);
        }

        for (var i = 0; i < count; ++i) {
            indices[i] = i;
        }

        mesh.vertices = verts;
        mesh.subMeshCount = 1;
        mesh.SetIndices(indices, MeshTopology.Points, 0);

        GetComponent<MeshFilter>().mesh = mesh;
    }
}

また,Unlit Shadarとして,以下のようなシェーダを作成しました.

Shader "Line Shader"
{
Properties
{
    _Color("Color", Color) = (1, 0.5, 0.5, 1)
}
SubShader
{
    Pass
    {
        BindChannels { Bind "vertex", vertex }
        SetTexture[_MainTex] { constantColor[_Color] combine constant }
    }
}
}

上のC#スクリプト(シェーダじゃないほう)を空のGameObjectにアタッチし,Playしても何も描画されませんでした.

Unityはド初心者のため,根本的なことが間違っているのかもしれませんが,どなたか描画方法を教えていただけると幸いです.

また,DirectXは使えるように設定はしたつもりで,Unityエディターのウィンドウ タイトル名の最後に “<DX11>” が付加されています.

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

こちらで試したところ、以下の手順で出来ました。

  1. Projectビューを右クリック→Create > Materialを選択し、Materialを作成
  2. Materialを選択し、InspectorビューのShaderからLine Shaderを選択
  3. 空のGameObjectを作成
  4. MeshFilter・MeshRenderer・ProceduralPointMesh.csをGameObjectにアタッチ
  5. Inspectorビューから、MeshRendererのMaterials > Sizeを1にし、Element 0に1.~2.で作成したMaterialを設定

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/26 13:47

    ベストアンサー選択が遅れて大変申し訳ありません.
    回答通りに試しましたところ無事表示することができました.
    ありがとうございました.

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    オブジェクトが奥の位置になるに連れ、Bloomによる滲みが弱くなってしまう。手前と均一にできないか?

    自作のゲームの中で、直線(四角ポリゴン)を使って部屋の中を表現しています。 Bloom And Flaresを使用して、直線を滲ませてみました。 しかし、画像をみていただけるとおわ

  • 解決済

    Unity-テクスチャを1マスごとに敷きつめる

    オブジェクトの表面にタイルのように画像を繰り返して敷き詰めたいです。 マテリアルのTilingを設定する方法を試したのですが、 これだとサイズの違うオブジェクトに対して、Til

  • 解決済

    unity shaderで音を出す

    unityのshaderで「~~~なら音をだす」という記述の仕方が分かりません。 追記 http://noshipu.hateblo.jp/entry/2016/04/21/1

  • 解決済

    Unityで線を描画したい

    Unityで線を描画したいと思っています。 現在、ARを使ってプログラミングをしているのですが、その中でARCameraの子オブジェクトとして使っているcanvasの中で線を描画し

  • 解決済

    Unityで影だけを表示させたい

    Unityでゲームオブジェクトを、ライトで真上から照らした光沢にしつつ、それに付く影はライトを上斜めから当てた感じで表示させたいと考えています。 Dlirectional ligh

  • 解決済

    PostProcessingStackの効果が重複してしまう

    Unityでスマホ向けのアプリを制作しています。 アセットのPostProcessingStackを使って画面効果を付与しているのですが、メインカメラとは別にUI用のカメラを用

  • 解決済

    頂点アルファをMAYAからUnityに反映したい

    Unityでゲーム開発を行っております。MAYAとUnityの連携について質問があります。 MAYAでテクスチャに対して頂点アルファを付けているモデリングデータを作成し、FBX

  • 受付中

    shaderについて

    現在unityでshaderを勉強しているものです。 shaderで2値表示をしたいと思っています。 以下のサイト https://ics.media/entry/5535 を参考

同じタグがついた質問を見る

  • C#

    6847questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Unity

    3803questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • DirectX

    66questions

    DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。