![]() |
Ответ: Имитация водной поверхности.
блин, это переменная, равная сканкоду
|
Ответ: Имитация водной поверхности.
Tormoz, опять нифига не работает, когда куплю нормальный ноут, я скажу. Не надо травмировать мою психику показывая ущербность нетбука:))
|
Ответ: Имитация водной поверхности.
Мож завести тему Нубшоу по хорсу и шэйдерам?
Я только щас спалил, что почти каждая команда хоть и пишется также, но структурно отличается :-D |
Ответ: Имитация водной поверхности.
Таки запустил это на хорсе >:)
Симпатичней чем на блице выглядит даже без изменений и задников :) Кажется я не вернусь в блитз. Люди, скажите сразу есть под блитцевское иде движок ищо лучше хорса?:rolleyes: |
Ответ: Имитация водной поверхности.
Цитата:
и врятли будет |
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Вот жопег с 95 качеством, забыл после сжатия с большого экрана обратно вернуть :)
|
Ответ: Имитация водной поверхности.
Если ещё надо.
|
Ответ: Имитация водной поверхности.
Вроде научился подключать сэмпльные шейдеры. А для файлов .fx есть какой нить редактор подчеркивающий синтаксис и имеющий встроенную справку по командам, а то по пндфной хорсовской справке по шейдерам не очень удобно лазить?
|
Ответ: Имитация водной поверхности.
Появилась мысль по оптимизации моей воды.
На каждую точку меша я делаю два тформпоинта. Не будет ли выгодней разово для всего меша тформвектор с такой координатой(1,1,1) а потом для каждой точки получатб координату следующей конструукцией: сохраненая х координата вершины на тформленный х от такого вектора + икс ентити содержащей вершину, и обратное преобразование. Команда т форм ведь в вычислеениях имеет кучу синусов ? И еще один вопрос. Что быстрей, сохранять данные в банк или в массив? |
Ответ: Имитация водной поверхности.
Юзай шейдеры. Изучи как работает шейдер, и делай всю математику в вершинном шейдере.
Смысла от Xors3D иначе мало. |
Ответ: Имитация водной поверхности.
Я хочу для начала почитать по шейдерам художественную литературу. А для блитца мне захотелось сделать пак функций, для воды, террэйна, облаков, замутить какую нить растительность. Простенький лайтмап для самопального террэйна, небо и т.п.
|
Ответ: Имитация водной поверхности.
Зачем делать что-то на FFP, если это уже никто не использует, и все всё делают на шейдерах?
В данном случае это не разумно.. |
Ответ: Имитация водной поверхности.
Просто так. А также из соображения, что научившись делать деревянные велосипеды с квадратными колесами, еще рано приступать к проектированию мопедов. :-D
|
Ответ: Имитация водной поверхности.
Это две разные вещи, снова говорю.
Шейдеры никак не относятся к FFP - это две разные сферы реализации, и общего там почти ничего нет. Совсем разный подход. Единственное одинаково, это данные которые используешь, но это изучается и там и там. |
Ответ: Имитация водной поверхности.
Есть еще один мотив, intel gma 945 хоть и поддерживает шейдеры 3.0, но программно, и чую задом, что не полностью. А пока единственно, что осталось это чудо нетбук леново идеяпад с 10, подключенный к 28" монику :-D.
|
Ответ: Имитация водной поверхности.
Лучше начинать с шейдеров 2.0. Их ограничение по нагрузке - источник мотивации на оптимизацию и больше смекалки.
|
Ответ: Имитация водной поверхности.
Чуть чуть о Shader'ах:
Shader – это специальная программа для графического процессора (GPU, Graphical Processing Unit), управляющая поведением определённой (шейдерной) стадии графического конвейера видео-карты, занимающаяся обработкой входных данных и “отдающая” результат обработки этих данных. В данный момент наиболее часто используются вершинные и пиксельные шейдеры (vertex & pixel shaders), но на самом деле в Direct3D существует не два, а больше видов шейдеров, которые отличаются как назначением, так и способами их применения: Вершинный шейдер (vertex shader) – шейдер, занимающиеся обработкой вершин модели Пиксельный шейдер (pixel shader) – шейдер, выполняющийся для каждого выводимого на экран пиксела Геометрический шейдер (geometry shader) (DirectX 10) – это шейдер, обрабатывающий геометрию. В отличие от вертексного шейдера, он обрабатывает не отдельные вершины, а наборы вершин, представляющих из себя геометрические примитивы (например, треугольники) Hull-Shader – (DirectX 11) шейдер тесселяции Domain-Shader – (DirectX 11) шейдер калькуляции внутри патча Pixel shaders (или фрагментный) шейдер – это шейдерная программа, которая занимается обработкой отдельных пикселей изображения. В конечном итоге, по большей части, именно pixel shader определяет насколько красиво и естественно будет выглядеть конечное изображение. Причём, пиксельные шейдеры могут использоваться не только для формирования самого изображения, но и для его пост-процессинга, т.е. для создания некоторых спец-эффектов. Vertex shader (вершинный шейдер) занимается обработкой данных вершин модели. Такие данные как координаты вершины в пространстве, текстурные координаты, тангент-вектор, бинормаль, нормаль обрабатываются как раз вершинными шейдерами. Кроме того, vertex shader занимается преобразованием модели из пространства модели в пространство мира/вида/проекции. Он может сам генерировать текстурные координаты или менять форму самой модели, например, “пустить” волны по ровной поверхности воды или как-то изогнуть модель, провести трансформации в соответствии со скелетной анимацией, может почитать освещённость вершин модели и много чего ещё… |
Ответ: Имитация водной поверхности.
Сегодня я многому научился :-D
Таки узнал, что команда Tform в блитце работает очень быстро, по сути это почти как умножение на одно число :) Таки сделал ручной расчет нормалей, с усреднением нормали полигонов примыкающих к вершине. Это работает слегка медленней, чем updatenormals. Я чувствую себя таааакиииим умным >>:( , хотя вроде затенение выглядит сильно контрастней.:) Но страшней :-D Код:
Graphics3D 640,480,0,2 |
Ответ: Имитация водной поверхности.
http://developer.nvidia.com/fx-composer Что вы можете сказать об этом? Или для нуба это как дать болгарку питекантропу?
O_o, на глаз запалил ошибку в своем коде, где тформлю вместо нормали вектор. |
Ответ: Имитация водной поверхности.
Вообще такие инструменты это не очень то удобно, имхо. Но если все же хочется "удобной" среды разработки шейдеров, то лучше взять ATI RenderMonkey.
|
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Мне кажется или самый удобный способ производить в башке все манипуляции? А учиться шейдерам будет проще тыкая пальцем рабочий пока он не изменится предсказуемым образом?
Чето в нвидиа как в цупе О_о. |
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
советую глянуть cg tutorial,
|
Ответ: Имитация водной поверхности.
А я вот это советую :)
Shader |
Ответ: Имитация водной поверхности.
![]() И когда я хотел в стандартном блитце откуда то выцарапать projectedz() и на основе полученной информации манипулировать нормалью вершины, с целью правильного самозатенения.(проецировал на камеру расположенную в источнике света и направленную по его вектору). То это была потуга самодельного пиксельного шейдера, что ли? Кстати пока разглядывал сэмпэльные шейдеры запалил, что их писал Мока:), и чет нигде не увидел создание источника света, а только сферы, которая походу служит маркером для координат света. То есть обычный свет в сцене для шейдеров вреден? |
Ответ: Имитация водной поверхности.
Цитата:
Цитата:
чтобы показать на экран геометрию, имея координаты её вертексов в пространстве объекта - тебе надо умножить их сначала на world матрицу (это матрица трансформаций объекта, она содержит позицию, ротейт, скейл. без неё ты тоже увидишь объект на экране, но в нуле координат, неротированный, с единичным скейлом), потом на view матрицу (это инвертированная матрица трансформаций камеры - при умножении на неё, мы получаем что позиция камеры - это ноль координат, то же самое и с вращением, проще говоря пододвигаем всю геометрию к камере), потом на projection, который ты и указал - это сложная матрица, которая сделает перспективное сокращение. в реале можно перемножить все эти матрицы заранее и подавать как одну WorldViewProj, одним умножением на которую, можно получить объект в нужном месте - ксорс позволяет её сразу передавать. пиксельные шейдеры с нуля считают цвет каждого пикселя, пользуясь выходными данными из вертексного шейдера. "обычный свет" не имеет к этому никакого отношения, хотя при желании ты сам можешь передавать позиции источников "обычного света" в шейдер и радоваться. |
Ответ: Имитация водной поверхности.
Я походу скоро к вижуал студии деградирую >_<
|
Ответ: Имитация водной поверхности.
И обнаружишь что писать код там очень удобно, а для подсветки hlsl, fx файлов есть NShader.
|
Ответ: Имитация водной поверхности.
![]() Это значит, что мне нужно обновить директикс или видеокарту? |
Ответ: Имитация водной поверхности.
Возможно видяшка кубмапы не держит.. :(
|
Ответ: Имитация водной поверхности.
Intel gma 950 вообще не видеокарта по ощущениям(matrox g400 и то резче в разы был в паре с более дохлым вторым пнем, нежели атом). Ладно присоветуйте мне ноут, есть разница для меня между intel'вским 3000 встроенным видео и 540gt? Или при условии отсутствия разницы для хорса лучше взять с более шустрым процем и встроенным видео?
А пока я так понимаю есть смысл экспериментировать с шейдерами 1.0 ? Шейдер морф, на глаз похож на умножение координат вершин на соs^2(f(x)+time) или нечто похожее :) |
Ответ: Имитация водной поверхности.
А почему именно ноут? Это не комфортно и ущербно за большие деньги при этом? В разы лучше работать на хорошем стационарнике не?
С любыми шейдерами хорошо, главное начать, не важно с какой версии. С 1.0 даже лучше - научишься базе. |
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Только это не "деградация", а развитие.
|
Ответ: Имитация водной поверхности.
![]() ![]() Зачем матрицы по четыре элемента в ряду имеют? Что четвертый в визуальном смысле значит? И вот допустим в соответствующей ячейке стоит интересующая меня буква, то чтобы получить эту букву я должен просто найти определитель матрицы этого элемента? Это и будет сей параметр? Пардон за тупость, но последний раз с матрицами я работал в 2002 и 2003 году. А книжку по линейной алгебре я тогда только в папке носил, читать брезговал :( Вот это мне поможет? Что из алгебр из этого списка читать?http://eqworld.ipmnet.ru/ru/library/...cs/algebra.htm |
Ответ: Имитация водной поверхности.
Почитай не алгебру, а литературу относительно разработке игр и матриц в этой области. Там часто всё разжёвывают как надо.
|
Ответ: Имитация водной поверхности.
Сцылку! С удобочитаемой, пожалста :rolleyes:
|
Ответ: Имитация водной поверхности.
|
Ответ: Имитация водной поверхности.
Спасибо, гуру. Но походу матрицы эти для разработки шейдера нахрен не нужны. Я походу снова начал рыть не в ту строну, гребанные рефлексы. :-D
Мало знать о многом, походу вредно :) |
Ответ: Имитация водной поверхности.
Хорошо иметь общую картинку, затем определить цели, и выделить из общего конкретные области деятельности, и изучать их. Тогда твоя работа в само образовании будет более направлена на конкретику, и КПД будет выше.
Насчёт матриц, не совсем. Ну тут относительно, порой и нужно делать что-то. Например для проекции текстуры на окружение подобие фонарика например, то тут нужно воспользоваться матрицей проекции, но по сути знать как она устроена, и не обязательно, главное знать как она работает и что нужно с ней делать, а внутрянка - это второстепенное :) Насчёт матриц, также. Нужно понимать чем является положение пикселя или вершины в представлении шейдера. И знать как переводить их в мировые координаты (3D), или как получить их координаты на экране (2D). Но это снова, матрицы задействованы, но не нада знать как реализованы, главное научиться пользоваться ими, и знать ожидаемый результат. Я не "гуру", мне ещё ой как много чего предстоит изучать и изучать. Да и знания - это меньшая состовляющая успешного программиста. Важнее способности. И всё это бесполезно без корректной философии и психологии самого программиста. Иметь способности, и не иметь мотивации - это слабо и ужасно :( |
Ответ: Имитация водной поверхности.
Я с вас не могу.
Просил редактор с подсветкой синтаксиа hlsl молчаниё. Текстовый редактор http://pnotepad.googlecode.com/files..._multilang.exe Модуль для подсветки http://pnotepad.googlecode.com/files/hlsl.scheme 2 с копейками метров. родная справка http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx Спрашивал про шейдеры. Нет, что бы сказать, что раз ты умеешь по формулам несколько не типично вертеть геометрией, то твоя проблема в освоении шейдеров, это просечь структуру данных транслируемых в шейдер, сами команды и потом радоваться спектру расширившихся возможностей. И что шейдеры к движку отношения не имеют. Я понимаю телепаты в отпуске, но, блин, вы как Моисеи :-D Терь по делу, а из шейдера в движок данные передаются? То есть если я захочу на большой массив данных воздействовать и потом в игровой логике как-нить задействовать полученные изменения? |
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Ну и ладно :) Мне бы к середине июля научиться бульбочки от капель на поверхностях имитировать :)
|
Ответ: Имитация водной поверхности.
dsd, здесь ни кто, ни кому, ничего не обязан.
То что ты нашёл ответы на свои вопросы сам - это круто, больше знаний и опыта приобрёл, нежели если бы получил ответы от кого-то. Да и подобный способ "ворчания", ради "показухи", говорит лишь о молодости как программиста - для тебя это ново, и нужно мнение окружающих. Весьма естественно для многих начинающих, но смотри, чтобы потом, когда внимание окружающих уже не будет так доставлять, чтобы ты не загнулся в этой деятельности.. |
Ответ: Имитация водной поверхности.
Как программисту мне целых четыре недели, зарабатывать "этим" на жизнь я не собираюсь. Есть куда более простые способы :-D
Просто в конце мая заподозрил в себе старческую деменцию.Вот и борюсь как умею :) Но за идейку с шейдерами спасибо, хороша. |
Ответ: Имитация водной поверхности.
четвертый стобец (строка) обычно вида 0 0 0 1. он нужен в финальном аккорде расписанном Mr_f-ом. при домножении на матрицу проекции. тогда там в конце будет не 1-ца а число - грубо говоря показывающее как далеко находится zFar от камеры. на него потом делятся позиции по координатным осям x и y для того чтобы пиксели выводились в единичном кубе. потом етот куб расширяется вьюпортом до нужного параллелипипеда (расширяются только x,y оси)
|
Ответ: Имитация водной поверхности.
![]() Сделал генератор меша для воды, теперь можно настраивать детализацию ^_^ по непонятной причине фпс при равных полигонах вырос. Вместо 68-72 75-78. Код:
supermesh=xCreateMesh() |
Ответ: Имитация водной поверхности.
Толи баг, толи фича.
Если в команду xVertexCoords surf,i,x00,z01,y00 вместо нормальной поверхности по ошибке воткнуть идэнтити этой поверхности, то вместо мава падает.:) Хмм. |
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
![]() Написал первый эскиз бесконечного террэйна :) Код:
Include "xors3d.bb" |
Ответ: Имитация водной поверхности.
http://denull.ru/terrain.htm медитировал на это. Если избавится от "дребезга" поверхности будет уже интересно :)
|
Ответ: Имитация водной поверхности.
![]() Пересадил на блитз "Алгоритм «diamond-square» для построения фрактальных ландшафтов" Потратил шесть часов на отладку неправильного метода, написал правильный за 20 минут. Я дебил или теперь так будет всегда? Уважаемые знатоки, какого демона, этот шайтан код на основе рандомных значений рисует одну и туже картинку :''(( PHP код:
|
Ответ: Имитация водной поверхности.
Я убрал знак равенства между SeedRnd MilliSecs() и у меня вроде бы работает)
|
Ответ: Имитация водной поверхности.
Фух, хотел заново переписывать :-D
Вроде мой первый действительно полезный код :) |
Ответ: Имитация водной поверхности.
Вложений: 1
|
Ответ: Имитация водной поверхности.
Не это я на высоте 0 отметку даю таким цветом :) В той точке ровно ноль :)
А, я не могу, оно оказывается еще и бесшовную текстуру рожает :-D. |
Ответ: Имитация водной поверхности.
![]() Второй эскиз террэйна. |
Ответ: Имитация водной поверхности.
Написал первый порношейдер методом... В общем, неправильным методом :-D. Делает он следующее рисует текстуру и все. Потом мне захотелось добавить функциональности в вершинный шейдер, сделал ввод переменной из хорса в шейдер. Далее решил умножить координаты вертексов на синус от введенной переменной.
PHP код:
|
Ответ: Имитация водной поверхности.
![]() рэвин хорстридэ и начинающий его юзер |
Ответ: Имитация водной поверхности.
Эммм дак ты нифига себе че делаешь то)) Ты сначала умножаешь координаты вертекса на ввп матрицу, а ПОТОМ умножаешь на косинустайм. Есстественно на экране будет ппц что...
Тебе надо сначала умножить координаты так как хочешь, а потом уже умножать на матрицу. Примерно так: Код:
v2f o; |
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Проще разделять координаты оперируя координата.x, координата.y, координата.z или получить вектор позиции A(x,y,z,w), потом уже работать с ним? Если допустим хочу сжать модель по Z в два раза то получаю итоговый вектор В(x,y,0.5*z,w) и с ним уже имею конструкцию выводящую из вертексного шейдера: OUT.Position = mul(В(x,y,0.5*z,w),MatWorld)?
И как я понимаю в OUT.Position будет записана не координата в позиции меша, а координата вертекса относительно глобальных мировых координат сцены? Вот это должно сжать модель по Зед, так или не так? mul(mul(IN.Position,B(1,1,0.5,1)),MatWorld) |
Часовой пояс GMT +4, время: 14:10. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot