![]() |
Ответ: Странное.
А оно невсегда упадёт, пока чужую память не попортишь.
|
Ответ: Странное.
Цитата:
|
Ответ: Странное.
падать вроде и не должно. всем элементам массива указателей назначается адрес начала массива с даблами. соотв первый [2047] возьмёт указатель, второй сам дабл. правда смысла в массиве указателй на один и тот же адрес я не вижу.
Цитата:
double* gh = new double[512*512]; |
Ответ: Странное.
А, понял на что мне гуру намекают :-) Что у меня во всех ячейках один и тот же массив и это попахивает кретинизмом хранить в одном массиве пару тысяч ссылок на один и тот же массив. Видимо для каждой ячейки нужно создавать уникальный массив и тогда все будет ок.
|
Ответ: Странное.
Да. Почитай про указатели еще раз.
ЗЫ. Ссылка != указатель, кстати. |
Ответ: Странное.
Продолжу нуб шоу по массивам:
double* gh = new double[512*512]; for(int i=0;i<512;i++) { gh[0*i]=0.5*i; } for(int i=0;i<512;i++) { printf(" value= %f",gh[0*i]); } печатает одно значение для всей строки, последнее. Я ожидал подряд идущих значений от 0 до 255,5. упд. В нуле штолеО_о, это таки одномерный массив. Идиотская конструкция печатает мне то что я хочу, где косяк в первой? ибо вторую печатать гораздо дольше: //создаю массив double *m0[size]; for(int i=0;i<size;i++){ m0[i]= new double[size]; } //заполняю первую строку for(int i=0;i<size;i++){ m0[0][i]=i; } //печатаю первую строку. for(int i=0;i<size;i++){ printf(" index %f",m0[0][i]); } |
Ответ: Странное.
0*i при любом значении i даёт 0, другими словами ты записываешь и печатаешь всегда значение одной единственной ячейки.
|
Ответ: Странное.
Я понял уже смысл такой записи массива :)
Написал глючный квадроалмазный генератор выдающий текстуру :) Причем он получился раз в 50 резче блитцевского при равном объеме вычислений. Генерирует текстуру 4096х4096 за 5 сек вместе с рисованием её против нескольких минут. Не зря я все-таки полировал себе мозг цпэпом. ![]() |
Ответ: Странное.
Цитата:
|
Ответ: Странное.
генератор карт высот по алгоритму diamond square
починил глюк, это был мусор в памяти :) PHP код:
|
Ответ: Странное.
Как вариант, можно еще писать array[i + n*j], где n - число столбцов. Просто в действительности данные расположены линейно, никаких двумерных (и тем более трех- и n-мерных) структур данных в памяти не может быть.
ЗЫ. Не писал бы этого, если бы не увидел [0*i] о_О |
Ответ: Странное.
![]() Выкинул лишние проходы и научил это раскрашивать текстуру :) Теперь оно еще в 4 раза быстрей:) |
Ответ: Странное.
А шейдером можешь генерить подобное?
|
Ответ: Странное.
Нет.
|
Ответ: Странное.
У меня появилась идея скрестить спаренный генератор высот и мою недосистему частиц в ландшафт напоминающий таковой из майнкрафта, только другим макаром.
Для начала генерируется карта 4к х 4к, потом на основе девяти ячеек из карты генерится другая 128х128, с актуальным размером 112х112 и 16 кратным нахлестом с соседними тайлами, для избежания резких швов. Вокруг игрока летает девять детализированных систем частиц и еще одна с шагом основной карты для изображения отдаленного пейзажа. в одной системе частиц у меня получается уместить 20к квадов, 112х112=12544 верхушек кубиков и остается ~10к квадов для имитации стен вырытых канавок. Вроде достаточно. Всего уже получится 20х10=200 к полигонов на ландшафт. Потом для этого дела генерится мой любимый двумерный массив указателей в ячейках которого будут объекты несущие в своих полях маски для раскраски территории. Ваши ставки, господа. Смогу ли я подобное сочинить? По ощущениям это должно быть впритык, но по силам :) |
Часовой пояс GMT +4, время: 06:04. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot