Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
ShinichiAoyagi
PPTX, PDF
21,080 views
WindowsストアーアプリでSharpDXを動かしてみる
MetroStyleDeveloper (プチ) #06 大阪 ~メトロスタイルアプリ エキスパート塾++2~で使用したセッション資料です。
Read more
1
Save
Share
Embed
Embed presentation
Download
Downloaded 10 times
1
/ 20
2
/ 20
3
/ 20
4
/ 20
5
/ 20
6
/ 20
7
/ 20
8
/ 20
9
/ 20
10
/ 20
11
/ 20
12
/ 20
13
/ 20
14
/ 20
15
/ 20
16
/ 20
17
/ 20
18
/ 20
19
/ 20
20
/ 20
More Related Content
PDF
Backbone model collection (jscafe 8)
by
Ryuma Tsukano
PPTX
How to make Inn-fighting dice
by
Masujima Ryohei
PPTX
機械学習
by
ssusere8ae711
KEY
今さら始めるCoffeeScript
by
Ashitaba YOSHIOKA
KEY
シェーダーしよっ☆ Let's play shaders!
by
Yuichi Higuchi
PPTX
CG2013 12
by
shiozawa_h
PPTX
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
by
Kiyoshi Sawada
PDF
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
by
Takashi Yoshinaga
Backbone model collection (jscafe 8)
by
Ryuma Tsukano
How to make Inn-fighting dice
by
Masujima Ryohei
機械学習
by
ssusere8ae711
今さら始めるCoffeeScript
by
Ashitaba YOSHIOKA
シェーダーしよっ☆ Let's play shaders!
by
Yuichi Higuchi
CG2013 12
by
shiozawa_h
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
by
Kiyoshi Sawada
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
by
Takashi Yoshinaga
What's hot
PDF
Hbstudy41 auto scaling
by
Fujishiro Takuya
PDF
2012 03-03-titanium plusquicktigame2d
by
Hiroshi Oyamada
PDF
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
by
Atsushi Tadokoro
PPTX
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
by
Kiyoshi Sawada
PDF
第12回計算機構成
by
眞樹 冨澤
KEY
Cocoa勉強会201208
by
Satoshi Oomori
PDF
GLSLによるシェーダーアートことはじめ
by
Yoichi Hirata
PDF
第10回 計算機構成
by
眞樹 冨澤
PPTX
ヒカリノアトリエ演出「Avoiding object」
by
Atelier Frameworks
PDF
Goをカンストさせる話
by
Moriyoshi Koizumi
PDF
Halide for Memory
by
Koumei Tomida
PDF
End challenge Part1
by
hisa2
PDF
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
by
Atsushi Tadokoro
PDF
asm.js x emscripten: The foundation of the next level Web games
by
Noritada Shimizu
PDF
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
by
Atsushi Tadokoro
PPT
Algorithm 速いアルゴリズムを書くための基礎
by
Kenji Otsuka
PDF
Haskell勉強会 14.1〜14.3 の説明資料
by
Etsuji Nakai
PPT
PSpiceのデジタル素子を活用したイメージ
by
Tsuyoshi Horigome
PDF
Processingによるプログラミング入門 第6回
by
Ryo Suzuki
PDF
Aaなゲームをjsで
by
Moriyoshi Koizumi
Hbstudy41 auto scaling
by
Fujishiro Takuya
2012 03-03-titanium plusquicktigame2d
by
Hiroshi Oyamada
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
by
Atsushi Tadokoro
EWD 3トレーニングコース#20 GlobalストレージのJavaScript用抽象化-(a)DocumentNodeオブジェクト
by
Kiyoshi Sawada
第12回計算機構成
by
眞樹 冨澤
Cocoa勉強会201208
by
Satoshi Oomori
GLSLによるシェーダーアートことはじめ
by
Yoichi Hirata
第10回 計算機構成
by
眞樹 冨澤
ヒカリノアトリエ演出「Avoiding object」
by
Atelier Frameworks
Goをカンストさせる話
by
Moriyoshi Koizumi
Halide for Memory
by
Koumei Tomida
End challenge Part1
by
hisa2
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
by
Atsushi Tadokoro
asm.js x emscripten: The foundation of the next level Web games
by
Noritada Shimizu
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
by
Atsushi Tadokoro
Algorithm 速いアルゴリズムを書くための基礎
by
Kenji Otsuka
Haskell勉強会 14.1〜14.3 の説明資料
by
Etsuji Nakai
PSpiceのデジタル素子を活用したイメージ
by
Tsuyoshi Horigome
Processingによるプログラミング入門 第6回
by
Ryo Suzuki
Aaなゲームをjsで
by
Moriyoshi Koizumi
Viewers also liked
PPT
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
by
ShinichiAoyagi
PPTX
LINQ概要
by
ShinichiAoyagi
PPTX
Windows ストアーアプリで SQLite を使ってみよう
by
ShinichiAoyagi
PPTX
XAML 入門
by
ShinichiAoyagi
PPTX
LINQ の概要とかもろもろ
by
ShinichiAoyagi
PPTX
トランザクションの設計と進化
by
Kumazaki Hiroki
“なめらか”なメトロスタイルアプリを作るために ~WinRT の非同期性を活用したアプリ開発~
by
ShinichiAoyagi
LINQ概要
by
ShinichiAoyagi
Windows ストアーアプリで SQLite を使ってみよう
by
ShinichiAoyagi
XAML 入門
by
ShinichiAoyagi
LINQ の概要とかもろもろ
by
ShinichiAoyagi
トランザクションの設計と進化
by
Kumazaki Hiroki
Similar to WindowsストアーアプリでSharpDXを動かしてみる
PPTX
Shadow gunのサンプルから学べるモバイル最適化
by
Katsutoshi Makino
PDF
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
by
UnityTechnologiesJapan002
PDF
板ポリだけで めちゃカッコいい グラフィックスを出す!
by
notargs
PPTX
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
by
Fujio Kojima
PPTX
シェーダー伝道師 第一回
by
hixi365
PPTX
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
by
Masafumi Takahashi
PDF
WebGL and Three.js
by
yomotsu
PPTX
知覚動考、とりあえずShaderを書いてみる
by
onotchi_
PDF
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
by
AdvancedTechNight
PDF
【Unity道場 2月】シェーダを書けるプログラマになろう
by
Unity Technologies Japan K.K.
PDF
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
by
Unity Technologies Japan K.K.
PDF
Android OpenGL HandsOn
by
Ikuo Tansho
PDF
Direct3D 12 Summary
by
shobomaru
PDF
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...
by
KLab Inc. / Tech
PDF
【TechBuzz】第9回cocos2d-x勉強会「シェーダ書いてますか?」
by
nyagasuki
PDF
Flashup13 Basic Training of Flare3D
by
Katsushi Suzuki
PDF
Cocos2dshader devcon jp_20120621_en
by
Ricardo Quesada
PDF
簡単!OpenGL ES 2.0フラグメントシェーダー
by
Eiji Kamiya
Shadow gunのサンプルから学べるモバイル最適化
by
Katsutoshi Makino
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
by
UnityTechnologiesJapan002
板ポリだけで めちゃカッコいい グラフィックスを出す!
by
notargs
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
by
Fujio Kojima
シェーダー伝道師 第一回
by
hixi365
Visual Studio 2012のDirect3Dアプリ開発者向け新機能を知ろう
by
Masafumi Takahashi
WebGL and Three.js
by
yomotsu
知覚動考、とりあえずShaderを書いてみる
by
onotchi_
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
by
AdvancedTechNight
【Unity道場 2月】シェーダを書けるプログラマになろう
by
Unity Technologies Japan K.K.
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
by
エピック・ゲームズ・ジャパン Epic Games Japan
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
by
Unity Technologies Japan K.K.
Android OpenGL HandsOn
by
Ikuo Tansho
Direct3D 12 Summary
by
shobomaru
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
by
エピック・ゲームズ・ジャパン Epic Games Japan
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...
by
KLab Inc. / Tech
【TechBuzz】第9回cocos2d-x勉強会「シェーダ書いてますか?」
by
nyagasuki
Flashup13 Basic Training of Flare3D
by
Katsushi Suzuki
Cocos2dshader devcon jp_20120621_en
by
Ricardo Quesada
簡単!OpenGL ES 2.0フラグメントシェーダー
by
Eiji Kamiya
More from ShinichiAoyagi
PPTX
WPF & Windows Forms on .NET Core 3.0
by
ShinichiAoyagi
PPTX
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
by
ShinichiAoyagi
PPTX
Visual Studio 2015 + Xamarin
by
ShinichiAoyagi
PPTX
Xamarin+MVVMCross のあれこれ
by
ShinichiAoyagi
PPTX
うるう秒とタイムゾーン
by
ShinichiAoyagi
PPTX
LINQ 概要 + 結構便利な LINQ to XML
by
ShinichiAoyagi
PPTX
C# と .NET と ・・・
by
ShinichiAoyagi
PPTX
メトロスタイルアプリ開発最初の一歩
by
ShinichiAoyagi
PPTX
メトロスタイルってなに?
by
ShinichiAoyagi
PPT
ついに日本上陸!Windows Phone 7.5 アプリケーション開発
by
ShinichiAoyagi
WPF & Windows Forms on .NET Core 3.0
by
ShinichiAoyagi
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
by
ShinichiAoyagi
Visual Studio 2015 + Xamarin
by
ShinichiAoyagi
Xamarin+MVVMCross のあれこれ
by
ShinichiAoyagi
うるう秒とタイムゾーン
by
ShinichiAoyagi
LINQ 概要 + 結構便利な LINQ to XML
by
ShinichiAoyagi
C# と .NET と ・・・
by
ShinichiAoyagi
メトロスタイルアプリ開発最初の一歩
by
ShinichiAoyagi
メトロスタイルってなに?
by
ShinichiAoyagi
ついに日本上陸!Windows Phone 7.5 アプリケーション開発
by
ShinichiAoyagi
WindowsストアーアプリでSharpDXを動かしてみる
2.
http://sharpdx.org/
Direct3D DirectSound DirectDraw(DirectX 7 で終了) Direct2D (Windows 7 以降) DirectInput などなど
7.
<Rectangle x:Name=“Rectangle1” ...以下略.../>
8.
using SharpDX; using SharpDX.Direct3D; using
SharpDX.Direct3D11; using SharpDX.DXGI; using SharpDX.IO; // Direct3D デバイス private SharpDX.Direct3D11.Device1 d3dDevice; // Direct3D コンテキスト private SharpDX.Direct3D11.DeviceContext1 d3dContext;
9.
// Direct3D デバイスの取得 var
creationFlags = DeviceCreationFlags.VideoSupport | DeviceCreationFlags.BgraSupport | DeviceCreationFlags.Debug; using (var defaultDevice = new SharpDX.Direct3D11.Device(DriverType.Hardware, creationFlags)) { this.d3dDevice = defaultDevice.QueryInterface<SharpDX.Direct3D11.Device1>(); } // Direct3D コンテキストを取得 this.d3dContext = d3dDevice.ImmediateContext.QueryInterface<SharpDX.Direct3D11.DeviceContext1>();
10.
using Windows.Graphics.Display; using Windows.UI.Xaml.Media.Imaging; //
SurfaceImageSource private SurfaceImageSource surfaceImageSource;
11.
// SurfaceImageSource の作成 int
pixelWidth = (int)(this.Rectangle1.Width * DisplayProperties.LogicalDpi / 96.0); int pixelHeight = (int)(this.Rectangle1.Height * DisplayProperties.LogicalDpi / 96.0); this.surfaceImageSource = new SurfaceImageSource(pixelWidth, pixelHeight); var brush = new ImageBrush(); brush.ImageSource = this.surfaceImageSource; this.Rectangle1.Fill = brush; using (var surfaceImageSourceNative = ComObject.As<SharpDX.DXGI.ISurfaceImageSourceNative>(this.surfaceImageSource)) { surfaceImageSourceNative.Device = this.d3dDevice.QueryInterface<SharpDX.DXGI.Device>(); }
12.
// 描画コールバックを開始 CompositionTarget.Rendering +=
CompositionTarget_Rendering; private void CompositionTarget_Rendering(object sender, object e) { int pixelWidth = (int)(this.Rectangle1.Width * DisplayProperties.LogicalDpi / 96.0); int pixelHeight = (int)(this.Rectangle1.Height * DisplayProperties.LogicalDpi / 96.0); var updateRect = new SharpDX.Rectangle(0, 0, pixelWidth, pixelHeight); DrawingPoint offset; using (var surfaceImageSourceNative = ComObject.As<SharpDX.DXGI.ISurfaceImageSourceNative>(this.surfaceImageSource)) using (var surface = surfaceImageSourceNative.BeginDraw(updateRect, out offset)) { // レンダーターゲット作成 Size renderTargetSize; RenderTargetView renderTargetView; using (var backBuffer = surface.QueryInterface<SharpDX.Direct3D11.Texture2D>()) { renderTargetSize = new Size(backBuffer.Description.Width, backBuffer.Description.Height); renderTargetView = new RenderTargetView(this.d3dDevice, backBuffer); } ...続く
13.
...続き
// ビューポート作成 Viewport viewport = new Viewport(0, 0, (int)renderTargetSize.Width, (int)renderTargetSize.Height, 0.0f, 1.0f); // レンダーターゲット、ビューポートをセット this.d3dContext.OutputMerger.SetTargets(renderTargetView); this.d3dContext.Rasterizer.SetViewports(viewport); // 背景クリア this.d3dContext.ClearRenderTargetView(renderTargetView, Colors.Red); // レンダリング this.d3dContext.Draw(36, 0); surfaceImageSourceNative.EndDraw(); } }
14.
頂点シェーダー
GPU で頂点座標を計算 ピクセルシェーダー GPU で各ピクセルの色を計算 頂点レイアウト GPU に頂点の配置順を教える 頂点バッファー 頂点の集まり 頂点インデックス 頂点の並び順 定数バッファー GPU の変数を渡す レンダーターゲットビュー ポリゴンの色を描画 深度バッファー ポリゴンの奥行き値を描画
16.
// 頂点シェーダー private VertexShader
vertexShader; // ピクセルシェーダー private PixelShader pixelShader; // 頂点レイアウト private InputLayout layout; // 頂点バッファー private VertexBufferBinding vertexBufferBinding; // 定数バッファー private SharpDX.Direct3D11.Buffer constantBuffer;
17.
// 頂点シェーダー、ピクセルシェーダーの読み込み、作成 var installPath
= Windows.ApplicationModel.Package.Current.InstalledLocation.Path; var vertexShaderByteCode = NativeFile.ReadAllBytes(Path.Combine(installPath, "SimpleVertexShader.cso")); this.vertexShader = new VertexShader(this.d3dDevice, vertexShaderByteCode); this.pixelShader = new PixelShader(this.d3dDevice, NativeFile.ReadAllBytes(Path.Combine(installPath, "SimplePixelShader.cso"))); // 頂点レイアウト作成 this.layout = new InputLayout(this.d3dDevice, vertexShaderByteCode, new[] { new InputElement("POSITION", 0, Format.R32G32B32A32_Float, 0, 0), new InputElement("COLOR", 0, Format.R32G32B32A32_Float, 16, 0) }); ...続く
18.
...続き // 頂点バッファー作成 var vertices
= SharpDX.Direct3D11.Buffer.Create(this.d3dDevice, BindFlags.VertexBuffer, new[] { new Vector4( 0.0f, 1.3f, 1.0f, 1.0f), new Vector4(1.0f, 0.0f, 0.0f, 1.0f), // Front new Vector4( 1.1f, -0.6f, 1.0f, 1.0f), new Vector4(0.0f, 1.0f, 0.0f, 1.0f), new Vector4(-1.1f, -0.6f, 1.0f, 1.0f), new Vector4(0.0f, 0.0f, 1.0f, 1.0f), }); this.vertexBufferBinding = new VertexBufferBinding(vertices, Utilities.SizeOf<Vector4>() * 2, 0); // 定数バッファー作成 this.constantBuffer = new SharpDX.Direct3D11.Buffer(d3dDevice, Utilities.SizeOf<SharpDX.Matrix>(), ResourceUsage.Default, BindFlags.ConstantBuffer, CpuAccessFlags.None, ResourceOptionFlags.None, 0);
19.
// レンダリングパイプライン構築 this.d3dContext.InputAssembler.SetVertexBuffers(0, this.vertexBufferBinding); this.d3dContext.InputAssembler.InputLayout
= this.layout; this.d3dContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList; this.d3dContext.VertexShader.SetConstantBuffer(0, this.constantBuffer); this.d3dContext.VertexShader.Set(this.vertexShader); this.d3dContext.PixelShader.Set(this.pixelShader); // 定数バッファーに変換行列をセット var projection = SharpDX.Matrix.OrthoLH(4.0f, 4.0f * (float)renderTargetSize.Height / (float)renderTargetSize.Width, 0f, 2f); var worldViewProjection = SharpDX.Matrix.RotationZ(2f * (float)Math.PI * (float)DateTime.Now.Millisecond / 1000f) * projection; worldViewProjection.Transpose(); this.d3dContext.UpdateSubresource(ref worldViewProjection, this.constantBuffer, 0);
20.
http://code.msdn.microsoft.com/windowsapps/site/search?f%5B0%5D.Type=Tech nology&f%5B0%5D.Value=DirectX
Download