![]() |
Написал c# враппер
Написал враппер всех функций ксорса.. в чем фишка? В том, что тут все максимально ООП, и подключается одной dll к любым .NET языкам. Плюс я дорабатываю враппер своими функциями например:
Цитата:
|
Ответ: Написал c# враппер
ну нормально, чё.
|
Ответ: Написал c# враппер
Посоветовал бы исправить метод equals на public override bool Equals(object obj), переопределить операторы == и != и метод public override int GetHashCode() для TEntity.
Да и как уже сказал MoKa - убрать префикс у классов. |
Ответ: Написал c# враппер
переопределить операторы == и !=
Я пробовал переопределять... но происходит зацикливание, вот почему if((first!=null) && (second!=null))//<<тут зацикливание { if(first._handle == second._handle) return true; } return false; Префикс не уберу. Я хочу чтобы он остался. Это мой "загон" |
Ответ: Написал c# враппер
где пост Моки?
|
Ответ: Написал c# враппер
Цитата:
http://blog.nguen.net/post191-override_equals.html по поводу шанса null - простой вариант - Код:
class Test |
Ответ: Написал c# враппер
|
Ответ: Написал c# враппер
Цитата:
Еще: xx для класса функций ксорса это как-то вообще. Для всех объектов, имеющих _handle надо было бы сделать базовый класс и наследовать все объекты от него. Не надо было бы переопределять equals везде. Не вижу необходимости в класса с суффиксом s, это можно статическими методами сделать. |
Ответ: Написал c# враппер
Кстати класс xx ты не объявил как статик, и при этом он содержит сами Interop ссылки на функции из библиотеки ксорса. Так вот, лучше наименовать его Interop например, или Functions. Использоваться он должен всё равно только интернально в библиотеке, поэтому ему ещё и видимость нада internal а также объявить его в именном пространстве свойственному к библиотеке.
Вообще архитектурно кривостей Очень много.. |
Ответ: Написал c# враппер
Вложений: 1
Переименовал на сколько сил хватило...
|
Ответ: Написал c# враппер
Цитата:
|
Ответ: Написал c# враппер
А просто так)
|
Ответ: Написал c# враппер
И всетаки неплохо получилось.. то что ты переименовал, я оставлю так.. изменю кое что что предложил Мока. Сделаю на HashTable сохранение всех созданных энтити и сюрфейсов, текстур, брашей.. короче всего где есть хэндл, и брать оттуда если уже существует
|
Ответ: Написал c# враппер
Я там еще удалил из XE ссылки на объекты с окончанием s. А сами объекты сделал статическими...
Кстати не хватает энамов для констант шейдеров... |
Ответ: Написал c# враппер
Цитата:
|
Ответ: Написал c# враппер
Да вроде матрицы, может еще чего
|
Ответ: Написал c# враппер
Обновлено 15.11.2011 13:10
Изменена структура (спасибо pax) Добавлена структура enum KeyCodes Добавлены статические D3DXMATRIX - типы Изменена функция SetEffectMatrix, в качестве value она принимает D3DXMATRIX Улучшена организация памяти, добавлены hashTables для наиболее распространенных типов объектов Entity, Surface, Brush, Texture, World По всем косякам обращаться ко мне =). Кстати там непонятка, например D3DXMATRIX EntityMatrix тоже тип d3dxmatrix который хранит в себе хэндл.. следовательно я матрицу из энтити могу запихнуть в SetEffectMatrix, это правильно? |
Ответ: Написал c# враппер
Наработал небольшой редактор, альфа версия, для моего враппера
Посмотрите на моем сайте Vector3 может сохранять вершину в ToString() Entity имеет функцию State.GetPath() это его путь включая всех родителей Entity имеет функцию State.GetChildFromPath - получить потомка из указанного пути Люди. Кто знает если в максе создать анимированную модель на сцене, загрузить эту сцену with childs, найти анимационный entity. Будет ли он играть анимацию? |
Ответ: Написал c# враппер
Я бы сделал вот такую реализацию Vector3:
PHP код:
|
Ответ: Написал c# враппер
Половину математических функций я не понял, но все равно да будет так )))
Блин не получается запилить deferred shading. Без этого шейдера, вся графика отстает на 10 лет |
Ответ: Написал c# враппер
я бы Equals сделал лучше так:
Цитата:
|
Ответ: Написал c# враппер
Цитата:
Просто раньше я видел этот метод и он был примерно таким, как ты написал. UPD: Поправил. |
Ответ: Написал c# враппер
|
Ответ: Написал c# враппер
Большинство из названий скопированы из декомпилированного класса Vector3 из UnityEngine.dll, собственно от сюда и имена такие.
PS: И это не класс, это структура. Т.к. с векторами придется работать часто, то они должны уничтожаться сразу после выхода из области видимости, а не ждать сборщика. UPD: добавил несколько комментариев в код класса |
Ответ: Написал c# враппер
MoKa внеси свой вклад.. замути deferred shading :-D а я сейчас паралаксом занимаюсь для 1 источника света... надеюсь получится
|
Ответ: Написал c# враппер
Вложений: 1
|
Ответ: Написал c# враппер
А дисплейс не лучше в альфе нормалмэпы хранить?
|
Ответ: Написал c# враппер
Цитата:
|
Ответ: Написал c# враппер
Так там все должно зависеть от источника света, его попробуй подвигай.
Собственно координаты камеры и источника света надо обновлять каждый кадр в шейдере. |
Ответ: Написал c# враппер
Кручение камеры (Rotate) никак не должно влиять на смещение для параллакса. Только позиция влияет на это, т.к. ты ведь определяешь перспективу с точки зрения до пикселя, и тут поворот камеры не важен.
Насчёт освещения, тут всё просто - то же самое, только вычислять его нада после уже смещений, т.к. смещать нужно как diffuse так и normal карты. Вот делал давно, шейдер не очень оптимизирован, и стиль совсем убогий был: http://moka.ucoz.ru/load/0-0-0-84-20 |
Ответ: Написал c# враппер
Если камера стоит на месте и двигается объект то перспектива в дисплейсе изменяется правильно, если двигается камера, то дисплейс на объекте не считается
|
Ответ: Написал c# враппер
Цитата:
Код:
// camera data Код:
// camera data |
Ответ: Написал c# враппер
я ее в коде программы привязываю с камерой
Черт. похоже я дурак.. и ведь правда заработало.. а нахер я тогда в коде позиции камеры передаю |
Ответ: Написал c# враппер
Цитата:
Глянь тот что я запостил. |
Ответ: Написал c# враппер
Изменения в XeEditorе. Возможность назначать паралакс. Возможность выбрать текстуру из списка, а не вводом файла вручную. Возможность настроить джоинты.
|
Ответ: Написал c# враппер
Раз ты делаешь материалы, то как будет организовано их применение в игровом движке который будет грузить твои карты?
Ты предоставишь API? Также если кто-то хочет свой шейдер, и настроить его? Ты не с того конца пошёл, система материалов должна предоставлять возможность ими управлять, и каждый материал бамп или параллакс должен быть реализован на этой системе материалов, и должна быть возможность импорта и экспорта файла материала. Иначи пользы от твоих параллаксов никакой, и ты уже не редактором занимаешься.. |
Ответ: Написал c# враппер
в враппере предусмотрена загрузка стандартного шейдера бама параллакса блума... я не расчитываю на большую гибкость... программист может ручками найти объект и прописать для него свой файл шейдера. Редактор лишь предоставляет стандартные возможности. И физика. Что я хочу сделать. Это возможность настройки видимости объекта, альфы прочих стандартных мелочей. И подумываю о том что бы сохранять позицию камеры. А так... впринципе что задумал то и реализовал. Единственное что я хотел сделать еще, это чтобы несколько объектов, можно было объединить в один физический. Не имеется в виду приаттачить меши, а настроить физику так, чтобы несколько объектов считались одним, но я пока не понял можно ли это сделать на ксорсе.
|
Ответ: Написал c# враппер
Цитата:
|
Ответ: Написал c# враппер
Вложений: 1
|
Ответ: Написал c# враппер
Ты действительно считаешь, что HDR и Bloom - это одно и то же?
|
Ответ: Написал c# враппер
Нет. Там есть свойство Thresold езменение его значения будет влиять как обработать картинку, с засвечиванием или с затенением
PS. На скрине.. я совместил bloom и HDR |
Ответ: Написал c# враппер
Добавил рендер из дополнительной камеры в текстуру одной функцией
memoryCam.RenderToTexture(memTex); |
Ответ: Написал c# враппер
А где главный аттрибут HDR'а - exposure? Его реализация уже не такая и простая - нужно вычислить общую яркость картинки, и на основе её, смещать радиус затенения и засветления на картинки. При этом без HDR текстур, это будет очень "грубо", хотя можно и добиться нормального эффекта, как например в MW2, там супер была реализована exposure, корректно окна засветляли, а выходя на улицу, "адаптировался" глаз.
HDR - это сложная смесь, а не просто блум и коррекция цвета. |
Ответ: Написал c# враппер
да с выходом на свет, спеццэффект было бы ваще супер, автокоррекция типа. я даже не представляю как это называется и как это сделать
|
Ответ: Написал c# враппер
Цитата:
Цитата:
1 2 3 |
Ответ: Написал c# враппер
тред по диагонали читал, ибо
ЧТО Ж ВЫ ДЕЛАИТИ!! 1) Реализация функции-члена сразу после объявления в классе? Нет пути - юзай inline для подстановки. 2) Передача аргумента не по ссылке в реализации перегрузки копирования(рекурсия) /сравнения ? И где уже const-ы для методов и некоторых их аргументов? 3) Компоненты вектора в паблике?! Если у вас перегрузка сделана как функция поддержки, то объявите её дружественной классу - не уродуйте интерфейс! 4?) Заодно я не очень понял преимущество делать столько статических функций-членов. Большая часть из них вполне логически могла бы быть нестатическими. Прошу прощения, если не прав и кого-то обидел. А идея, наверно, неплохая - да. апд: :-D только не говорите, что вы обсуждали C#-код, и C++ные придирки неактуальны :''(( |
Ответ: Написал c# враппер
Цитата:
ЗЫ. а разве в шарпе есть inline и оно актуально? |
Ответ: Написал c# враппер
передачи ссылок - актуально
|
Ответ: Написал c# враппер
Передача ссылок нужна только не для ссылочных типов.
|
Ответ: Написал c# враппер
Цитата:
|
Ответ: Написал c# враппер
2 pax, SBJoker
Цитата:
Код:
Vector3 operator +(Vector3 one, Vector3 other) Код:
Vector3 &operator +(const Vector3 &one,const Vector3 &other) |
Часовой пояс GMT +4, время: 10:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot