Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.11.2008, 05:03   #1
Vedrus
ИСККОНный хакер
Форумчанин
 
Аватар для Vedrus
 
Регистрация: 08.11.2007
Сообщений: 195
По умолчанию Оптимальное использование буфера вершин и индексов

1. Как я понял, стандартная последовательность заполнения этих буферов следующая:
lock
memcpy
unlock

2. После этого прорисовка делается следующим образом:
BeginScene
SetStreamSource
DrawPrimetive
EndScene

Вопрос в следующем. Пара функций SetStreamSource/DrawPrimitive каждый раз копирует данные из памяти компьютера в память видеокарты? Если да, то можно ли как-то этого избежать? Ведь бывают случаи, когда на каждом кадре обновляется только процентов 10 вершин, а остальные остаются неизменными.

Т.е. интересует следующее, если я с помощью memcpy обновлю не весь блок, а 10%, то как сделать, чтобы и в видеокарту 10% скопировалось, а не всё?
#define QUESTION bb || !bb
Vedrus вне форума
Старый 07.11.2008, 17:53   #2
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

А что если сразу создавать эти буферы в видеопамяти ?
Насколько я в курсе флажок D3DPOOL_DEFAULT - как раз и есть попытка создать буфер в видеокарте и уж если там места нет, тогда в системной памяти.
А потом, при пересчёте вершин, можно лочить не весь буфер, а только его часть. К тому же индексный буфер вроде вообще пересчитывать не надо.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума
Старый 08.11.2008, 03:46   #3
Vedrus
ИСККОНный хакер
Форумчанин
 
Аватар для Vedrus
 
Регистрация: 08.11.2007
Сообщений: 195
По умолчанию

Спасибо, такой ответ мне и был нужен. Тему можно закрывать
#define QUESTION bb || !bb
Vedrus вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
печать из буфера Марксист Общие вопросы Delphi 2 28.07.2008 14:00
Поиск разделяющих вершин в произвольном графе... Agnazar Помощь студентам 4 29.05.2008 22:51
Проблема с вводом лямбд, индексов и тд в Delphi bles Помощь студентам 6 22.05.2008 11:39
Построить треугольник по координатам его вершин и описать около него окружность. Lion Помощь студентам 22 01.04.2008 23:37
Паскаль. Сравнение на подобность треугольников. Координаты вершин в матрице. Jondeer Помощь студентам 3 07.11.2007 07:31