Навигация
· XNA FAQ
· С чего начать
· Конкурсы
· Обратная связь
· XNA Блоги
Сейчас на сайте
· Гостей: 1

· Пользователей: 0

· Всего пользователей: 3,684
· Новый пользователь: headron
Последние фото
Эх, чуть не проспал закрытие.
Эх, чуть не проспал ...
Альбом: XNA Engine

GB
GB
Альбом: XNA Engine

South Park Coon & Friends
South Park Coon & Fr...
Альбом: XNA Games

Блоги
yavshoke
» XboxOne - интерес...
dampirik
» Push уведомления ...
dampirik
» Реклама,статистик...
Chort
» XNA и StartCoroutine
Chort
» Curve Class
dampirik
» Реклама, статисти...
dampirik
» Увеличение скорос...
dampirik
» Реклама, статисти...
general
» Распаковка DxtCom...
general
» Как работать с XN...
Поддержка
microsoft.com
1gb.ru - Дом для вашего сайта
Статистика посещений:

Просмотр темы
 Распечатать тему
3D XNA 4.0
Edison4
#1 Распечатать сообщение
Опубликовано 30.05.2012 17:51:30
Младший специалист


Сообщений: 14
Зарегистрирован: 19.05.12

Здравствуйте уважаемые форумчане!И снова у меня возник вопрос насчет отрисовки 3D модели в XNA 4,0 , я много примеров смотрел и в конечном итоге запутался прошу вас помочь разобраться почему не отрисовывается моделька?
Вот код:
Загрузить источник  GeSHi: C#
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Microsoft.Xna.Framework;
  5. using Microsoft.Xna.Framework.Audio;
  6. using Microsoft.Xna.Framework.Content;
  7. using Microsoft.Xna.Framework.GamerServices;
  8. using Microsoft.Xna.Framework.Graphics;
  9. using Microsoft.Xna.Framework.Input;
  10. using Microsoft.Xna.Framework.Media;
  11.  
  12. namespace WindowsGame5
  13. {
  14. /// <summary>
  15. /// This is the main type for your game
  16. /// </summary>
  17. public class Game1 : Microsoft.Xna.Framework.Game
  18. {
  19. GraphicsDeviceManager graphics;
  20. SpriteBatch spriteBatch;
  21. BasicEffect effect;
  22. public Game1()
  23. {
  24. graphics = new GraphicsDeviceManager(this);
  25. Content.RootDirectory = "Content";
  26. }
  27.  
  28. protected override void Initialize()
  29. {
  30. // TODO: Add your initialization logic here
  31. effect = new BasicEffect(GraphicsDevice);
  32. base.Initialize();
  33. }
  34.  
  35. /// <summary>
  36. /// LoadContent will be called once per game and is the place to load
  37. /// all of your content.
  38. /// </summary>.
  39. Model model;
  40. protected override void LoadContent()
  41. {
  42. // Create a new SpriteBatch, which can be used to draw textures.
  43. spriteBatch = new SpriteBatch(GraphicsDevice);
  44. model = Content.Load<Model>(@"Models\\p1_wedge");
  45. }
  46.  
  47. /// <summary>
  48. /// UnloadContent will be called once per game and is the place to unload
  49. /// all content.
  50. /// </summary>
  51. protected override void UnloadContent()
  52. {
  53. // TODO: Unload any non ContentManager content here
  54. }
  55.  
  56. /// <summary>
  57. /// Allows the game to run logic such as updating the world,
  58. /// checking for collisions, gathering input, and playing audio.
  59. /// </summary>
  60. /// <param name="gameTime">Provides a snapshot of timing values.</param>
  61. protected override void Update(GameTime gameTime)
  62. {
  63. // Allows the game to exit
  64. if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
  65. this.Exit();
  66.  
  67. // TODO: Add your update logic here
  68.  
  69. base.Update(gameTime);
  70. }
  71.  
  72. /// <summary>
  73. /// This is called when the game should draw itself.
  74. /// </summary>
  75. /// <param name="gameTime">Provides a snapshot of timing values.</param>
  76. protected override void Draw(GameTime gameTime)
  77. {
  78. GraphicsDevice.Clear(Color.CornflowerBlue);
  79. GraphicsDevice.DepthStencilState = DepthStencilState.Default;
  80. foreach (ModelMesh x in model.Meshes)
  81. {
  82. effect.CurrentTechnique.Passes[0].Apply();
  83. x.Draw();
  84. }
  85.  
  86. base.Draw(gameTime);
  87. }
  88. }
  89. }
  90.  
Добавлено за 0.017 секунд, используя GeSHi 1.0.8.2
:hi:
 
HOMPAIN
#2 Распечатать сообщение
Опубликовано 30.05.2012 18:14:48
Старший специалист


Сообщений: 211
Зарегистрирован: 13.01.11

У модели свои эффекты. Либо рисуй используя стандартные функции, либо замени эффекты на свои.

Пример замены эффектов.
http://msdn.micro...o.31).aspx
 
VAB
#3 Распечатать сообщение
Опубликовано 30.05.2012 18:16:43
Аватар пользователя

Администратор


Сообщений: 1431
Зарегистрирован: 21.07.09

Найди 10 отличий Wink
 
Edison4
#4 Распечатать сообщение
Опубликовано 30.05.2012 19:06:20
Младший специалист


Сообщений: 14
Зарегистрирован: 19.05.12

Там 3.1 версия.Я на этом и стопорюсь из-за разницы версий я запутался можете привести пример как элементарно загрузить модель и сделать ей отрисовку?Я уже 3 день маюсь посмотрел все уроки для начинающих по 3д но там 3.1.
Изменил(а) Edison4, 30.05.2012 19:13:33
 
niksan321
#5 Распечатать сообщение
Опубликовано 30.05.2012 19:45:09
Старший специалист


Сообщений: 252
Зарегистрирован: 24.09.11

есть чудо сайт с примерами для хна - http://create.msdn.com/en-US/education/catalog/?contenttype=0&devarea=0&platform=20&sort=1
 
HOMPAIN
#6 Распечатать сообщение
Опубликовано 30.05.2012 20:09:29
Старший специалист


Сообщений: 211
Зарегистрирован: 13.01.11

Самое простое - это заменить то, что ты написал для вывода на model.Draw(.....).

Например так
Загрузить источник  GeSHi: C#
  1.  
  2. model.Draw(Matrix.Identity, Matrix.CreateLookAt(Vector3.One * 10, Vector3.Zero, Vector3.UnitZ), Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(60), GraphicsDevice.Viewport.AspectRatio, 0.1f, 100));
  3.  
Добавлено за 0.005 секунд, используя GeSHi 1.0.8.2
 
Edison4
#7 Распечатать сообщение
Опубликовано 30.05.2012 20:36:17
Младший специалист


Сообщений: 14
Зарегистрирован: 19.05.12

Попробовал как вы сказали:
Загрузить источник  GeSHi: C#
  1. foreach (ModelMesh x in model.Meshes)
  2. {
  3.  
  4. x.Draw(Matrix.Identity, Matrix.CreateLookAt(Vector3.One * 10, Vector3.Zero, Vector3.UnitZ), Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(60), GraphicsDevice.Viewport.AspectRatio, 0.1f, 100));
  5. }
  6.  
Добавлено за 0.005 секунд, используя GeSHi 1.0.8.2

Итог:
Ошибка 1 Ни одна из перегрузок метода "Draw" не принимает "3" аргументов C:\Users\Эдуард\Documents\Visual Studio 2010\Projects\WindowsGame5\WindowsGame5\WindowsGame5\Game1.cs 84 17 WindowsGame5
 
Edison4
#8 Распечатать сообщение
Опубликовано 30.05.2012 20:37:36
Младший специалист


Сообщений: 14
Зарегистрирован: 19.05.12

Еще так попробовал но модельку не видно все равно.
Загрузить источник  GeSHi: C#
  1. protected override void Draw(GameTime gameTime)
  2. {
  3. GraphicsDevice.Clear(Color.CornflowerBlue);
  4. GraphicsDevice.DepthStencilState = DepthStencilState.Default;
  5. effect.CurrentTechnique.Passes[0].Apply();
  6. model.Draw(Matrix.Identity, Matrix.CreateLookAt(Vector3.One * 10, Vector3.Zero, Vector3.UnitZ), Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(60), GraphicsDevice.Viewport.AspectRatio, 0.1f, 100));
  7. base.Draw(gameTime);
  8. }
Добавлено за 0.006 секунд, используя GeSHi 1.0.8.2
 
HOMPAIN
#9 Распечатать сообщение
Опубликовано 30.05.2012 20:39:00
Старший специалист


Сообщений: 211
Зарегистрирован: 13.01.11

Зачем ты вместо model подставил ModelMesh x.

Удали весь цикл и оставь то, что я написал.
 
Edison4
#10 Распечатать сообщение
Опубликовано 30.05.2012 21:58:03
Младший специалист


Сообщений: 14
Зарегистрирован: 19.05.12

Так в посте 8 я и сделал как вы сказали но модели не увидел всеравно так почему же?
 
HOMPAIN
#11 Распечатать сообщение
Опубликовано 30.05.2012 22:04:04
Старший специалист


Сообщений: 211
Зарегистрирован: 13.01.11

Значит моделька не попала в поле видимости камеры.

Попробуй камеру отдалить.
 
Edison4
#12 Распечатать сообщение
Опубликовано 30.05.2012 22:19:04
Младший специалист


Сообщений: 14
Зарегистрирован: 19.05.12

Неполучается! Незнаю в чем дело посмотрите весь проект пожалуйста:

Проект
 
HOMPAIN
#13 Распечатать сообщение
Опубликовано 30.05.2012 23:09:38
Старший специалист


Сообщений: 211
Зарегистрирован: 13.01.11

Модель гигантская. Вот так получилось.

Загрузить источник  GeSHi: C#
  1. model.Draw(Matrix.Identity, Matrix.CreateLookAt(Vector3.One*2000, Vector3.Zero, Vector3.UnitZ), Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(60), GraphicsDevice.Viewport.AspectRatio, 1, 10000));
Добавлено за 0.005 секунд, используя GeSHi 1.0.8.2
 
beaver
#14 Распечатать сообщение
Опубликовано 30.05.2012 23:30:43
Аватар пользователя

Администратор


Сообщений: 1772
Зарегистрирован: 22.02.09

+1

Загрузить источник  GeSHi: C#
  1. GraphicsDevice.Clear(Color.CornflowerBlue);
  2. model.Draw(Matrix.Identity, Matrix.CreateLookAt(new Vector3(0, 0, 4000), Vector3.Zero, Vector3.Up), Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, GraphicsDevice.Viewport.AspectRatio, 1f, 100000));
  3. base.Draw(gameTime);
Добавлено за 0.005 секунд, используя GeSHi 1.0.8.2
 
Edison4
#15 Распечатать сообщение
Опубликовано 31.05.2012 06:21:14
Младший специалист


Сообщений: 14
Зарегистрирован: 19.05.12

Действительно она просто огромная, в следующий раз буду пробовать больше прежде чем писать .Всем откликнувшимся спс огромное помогли разобраться !Smile
 
beaver
#16 Распечатать сообщение
Опубликовано 31.05.2012 07:27:53
Аватар пользователя

Администратор


Сообщений: 1772
Зарегистрирован: 22.02.09

Нужно не пробовать, нужно знать. К модельке код ведь прилагался?..
 
Edison4
#17 Распечатать сообщение
Опубликовано 31.05.2012 16:52:57
Младший специалист


Сообщений: 14
Зарегистрирован: 19.05.12

Эмммм....Да.
 
Перейти на форум:
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Мини-чат
Вы должны авторизироваться, чтобы добавить сообщение.

27.08.2014
Я умею немного на asp.net + html и css

22.08.2014
на ASP mvc 3 есть пару проектов. Могу помочь, если нужно. Обидно, если закроется Frown

21.08.2014
я тоже ноль

21.08.2014
Я в вебе только с php занимался да и то на уровне чтоб работало.

21.08.2014
Я в вебе полный ноль…

21.08.2014
Переводить его надо, хоть на ту же азуру. И двиг менять на что-то современное. Если есть веб-разрабы - можем скооперироваться. Один делать не буду.

21.08.2014
не знаю всех нюансов по оплате и все хорошее когда нибудь заканчивается

21.08.2014
А что случилось?

21.08.2014
похоже сайт будет работать до 28го числа

09.08.2014
Апи пока не видел. Но есть приложение в магазине Live Lock Screen BETA, так что думаю скоро будет

08.08.2014
Я про API для Update1. На нем работает это

08.08.2014
А что именно нужно? Чтото и сейчас открыто http://msdn.micro.
...105).aspx

06.08.2014
Кто-нибудь слышал об открытии доступа к Lock Screen Api?

31.07.2014
VPDExpress на базе MVS 2012, ни в какую не ловит исключения. Даже если их сам создаешь. И всех так?

25.07.2014
С днем системного администратора причастных к этой профессии! По случаю - тортик от жены

RSS каналы сайта
XNA - Новости
XNA - Статьи
XNA - Форум
XNA - Галерея
XNA - Файлы
Время загрузки: 0,76 секунд 8,710,239 уникальных посетителей