![]() |
Ответ: Имитация водной поверхности.
Это?
Цитата:
Цитата:
Шо це? BBDECL void BBCALL xVertexTangent ( Surface * surface, int vertex, float x, float y, float z ) Sets the tangent of an existing vertex. Parameters: surface Surface handle vertex Vertex index x Tangent x of vertex y Tangent y of vertex z Tangent z of vertex BBDECL void BBCALL xVertexBinormal ( Surface * surface, int vertex, float x, float y, float z ) Sets the binormal of an existing vertex. Parameters: surface Surface handle vertex Vertex index x Binormal x of vertex y Binormal y of vertex z Binormal z of vertex |
Ответ: Имитация водной поверхности.
Во-первых, для таких целей есть шейдеры.
Во-вторых, зачем каждый раз удалять поверхность и создавать ее заново? В-третьих, есть волшебный флаг Код:
xCreateSurface (Entity *entity, Brush *brush=NULL, bool dynamic=false) |
Ответ: Имитация водной поверхности.
Лениво было выводить формулы соответствия ячеек массива и индексов вершин.
Просто в шейдерах я совсем дебил. И пока не догоню векторы не особо хочу в них лезть. |
Ответ: Имитация водной поверхности.
Прикольный глюк :)
... While(Not (xKeyHit(KEY_ESCAPE) Or xWinMessage("WM_CLOSE"))) timeruno=xMillisecs() ... xRenderWorld() xText 100,120,xMillisecs()-timeruno ... Печатает иногда... отрицательные значения. Кроме делэя и вэйттаймера это чем-нить лечится? |
Ответ: Имитация водной поверхности.
Есть вектора 1 (x1,y1,z1) с длиной l1 и 2 (x2,y2,z2) с длиной l2. Длина проекции вектора 2 на 1 будет: (x1*x2+y1*y2+z1*z2)/l1. То есть если будет три вектора некомпланарных, то координаты любого вектора можно записать в длинах проекций на эти три вектора? И это типа новый базис вектора 2 будет? А там уже и до матриц перевода из одних координат в другие не далеко?
|
Ответ: Имитация водной поверхности.
Господа кавалеристы, як в хорсе сделать чтобы данные коллизий были глобальными? Ато писать код в майнцукле не кошерно, както.
Вызывать в теле функции xcollisions и делать xUpdateworld? |
Ответ: Имитация водной поверхности.
Прямо триллер по мотивам простейшей физики бильярдных шаров :)
Цитата:
|
Ответ: Имитация водной поверхности.
Не думаю что тут найдётся много кто это будет компилить или читать. Народ ленивый, им картинки подавай, зрелищь, а не нудного кода..
|
Ответ: Имитация водной поверхности.
Будет модель стола. Где кликом можно будет катать шарики. без счетчиков без нефига, но и от не фига не зависящая :) а код точно не скомпилится. его там нету это только зарисовка :)
По задумке одной функцей это иницилизируется, а второй упдатится если камера в зоне досягаемости. Интерактивная модель стола для бильярда. |
Ответ: Имитация водной поверхности.
![]() Ящик грязи такая прелесть ^__^ ![]() |
Ответ: Имитация водной поверхности.
![]() Правда она супер? |
Ответ: Имитация водной поверхности.
Цитата:
![]() |
Ответ: Имитация водной поверхности.
И это не рожа с интернета :D это дружит с соседями :D
|
Ответ: Имитация водной поверхности.
dsd, возможно ты не понимаешь, но это не твой бложек. Тема уже давно скатилась в оффтоп, но теперь подавно.
|
Ответ: Имитация водной поверхности.
она стала офтопом когда мне начали говорить, что блитц не айс.
|
Ответ: Имитация водной поверхности.
Первая версия столкновений шариков с респонсем типа бильярд :)
Пробел - дать одному шарику случайный пендаль в плоскости стола. Кому не тяжко, посмотрите и откаментируйте сиё. |
Ответ: Имитация водной поверхности.
Внезапно у меня запустился хорс в кодеблокс и удивительная знакомость кода укрепила меня в мысли, что блитц мне не нужен:
Код:
#include "xors3d.h" ![]() И да где подсветку функций хорса врубить? Т.к. в settings => editor => syntax highlighting я не догоню как. не то что бы мне это так уж сильно требуется, но... хочется. |
Ответ: Имитация водной поверхности.
Шильдт - неплох.
Подсвечивается именно синтаксис язык и его ключевые слова. Вряд ли можно подсвечивать функции отдельной библиотеки. |
Ответ: Имитация водной поверхности.
Шейдер теней.
1. Делаем рендер с камеры стоящей в позиции света и ориентированной по направлению света. Результатом должна стать текстура, в которой цветом будет записано расстояние от видимых пикселей до источника света. Допустим красный+зеленый кодируют целую часть, а голубой дробную. 2. Далее рендрим сцену с обычной позиции камеры. Вершинный шейдер передает в пиксельный позиции и текстурные координаты вершин. Все тени в пиксельном шейдере. Передаем в шейдер позицию источника света и текстуру из п.1. Далее используя матрицу проекции для той камеры, что стоит в позиции источника света узнаю, верхний ли этот пиксель или нет, если нет, значит он в тени, значит надо совершить затенение, что само по себе тривиальная задача. И тут появляется возможность супер-дюпер манипулирования параметрами тени, хошь тени как на луне, хошь святящиеся. В итоге должно получиться само затенение. Все это можно объединить в одном шейдере с двумя проходами. Первый проход создание текстуры глубины сцены с позиции света. Камеру создавать не нужно, а на основании позиции света можно замутить матрицу проекции для камеры как бы существующей в этом месте. Для отсутствия швов карту глубины можно сделать кубомапой. Хотя бы в общих чертах я прав? |
Ответ: Имитация водной поверхности.
Цитата:
Цитата:
в VS считаешь просто помимо обычной позиции, позицию, полученную переменожением на шадоумап-матрицу. шадоумап-матрица = world * lightView * lightProj. потом эту матрицу, либо результат перемножения надо перевести в 0-1 диапазон, чтобы использовать как текстурные координаты для карты глубины. удобнее изначально шадоумап-матрицу умножить на скейлящую в нужный диапазон матрицу. Цитата:
Цитата:
|
Ответ: Имитация водной поверхности.
Вообще протупил, не нужны они, но в принципе, можно сделать как бы светящиеся участки мешей в зависимости от цвета наложенной текстуры.
|
Ответ: Имитация водной поверхности.
char fps;
xText (10,20,fps=xGetFPS()); выдает: \init.cpp|23|error: initializing argument 3 of 'void xText(int, int, const char*, int, int)'| Это типа я этой командой могу только константы печатать? O_o |
Ответ: Имитация водной поверхности.
так?
Цитата:
|
Ответ: Имитация водной поверхности.
так запускает, секунду печатает fps, потом ничего не печатает :)
|
Ответ: Имитация водной поверхности.
char содержит 1 символ (1 байт). для строк используй std::string.
#include <string> using namespace std; ... чтобы конвертировать число в стринг, придётся написать отдельную функцию: string itoa( int n ) { char buff[32]; sprintf(buff,"%d",n); return string( buff ); } ... xText (10,20, (string("fps: ") + itoa(xGetFPS())).c_str() ); необязательно так париться каждый раз - можно расширить стринг, дабы он мог нормально складываться с циферками. а вообще тебе стоит читать книжки по с++ ) --- исправил ошибочку |
Ответ: Имитация водной поверхности.
Так и читаю.
Щас вроде в башке устаканивается отличие и структура условий, циклов. Вроде ниче такой язык программирования :) |
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Небольшой код для C++ и Xors3D, с вращающимся тором и перемещением камеры. Для Code::Blocks 10.05
Код:
#include <iostream> |
Ответ: Имитация водной поверхности.
dsd, не думал блог завести ?
|
Ответ: Имитация водной поверхности.
С названием: Быдлокод для хорса?
|
Ответ: Имитация водной поверхности.
С любым названием.
|
Ответ: Имитация водной поверхности.
Зачем? Кто его будет читать? и указывать на самые тупые места моего кода?
|
Ответ: Имитация водной поверхности.
Теже люди которые читают то что ты здесь выкладываешь, наверное.
|
Ответ: Имитация водной поверхности.
Ты имел в виду какой-то определенный блог?
|
Ответ: Имитация водной поверхности.
Любой, на котором ты сможешь выкладывать свой код и скриншоты.
|
Ответ: Имитация водной поверхности.
После бана и исчерпания фантазии для генерации ников.
|
Ответ: Имитация водной поверхности.
Щито?
|
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Цитата:
Цитата:
|
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Цитата:
Цитата:
|
Ответ: Имитация водной поверхности.
Цитата:
Код:
char console[256]; |
Ответ: Имитация водной поверхности.
Цитата:
ну и потом синтаксис sprintf мне кажется бредовым и неинтуитивным. %d? wtf? да и часто ты юзаешь массивы чаров повсюду? удобнее когда всё что связано со стрингами обёрнуто в 1 класс. так можно привести пример в стиле: a = b+c; - нахрен этот бред, пардон? <приводишь асм код сложения> |
Ответ: Имитация водной поверхности.
Т.е. ты считаешь это (string("fps: ") + itoa(xGetFPS())).c_str() нормальным кодом?
|
Ответ: Имитация водной поверхности.
я считаю его более понятным
|
Ответ: Имитация водной поверхности.
Оукей
|
Ответ: Имитация водной поверхности.
Вопрос по глобальности переменных в С++:
Грубо говоря обычная переменная это тоже, что и переменная в блитцобэйсике. А указатель указывающий на эту переменную есть аналог объявления переменной глобальной. То есть : int q=10 // q=10 int *d=q // global q=10 соответственно q будет иметь значение 10, только в теле той функции, где она объявленна, а *d в силу того, что это адрес ячейки памяти будет 10 во всей программе, во всяком случае до тех пор пока значение там не изменится. Так? Также не надо боятся передовать даже большие массивы в заголовке функций ибо кроме адреса первой по счету ячейки больше ничего не передается? Как меня годами пугали надписи такого типа в самом начале книжек для чайников: if (a==0 || a++<=3) {cout<<a<<" 1"<<a<<"olala\n"}; If a=0 or (a+1)<=3 then Print a+" 1"+a+"olala" |
Ответ: Имитация водной поверхности.
Нет, неверно.
При выходе из области видимости, переменная q умрет. Конечно, не факт, что содержимое этой ячейки памяти сразу поменяется, но и рассчитывать на то, что оно сохранится, не стоит. http://programmersclub.ru/12/ |
Ответ: Имитация водной поверхности.
Класс, написанно явно для дебилов! То что надо:super:
|
Ответ: Имитация водной поверхности.
![]() Супер функция, попозже сделаю поверхность на вид сплошной и на все вертексы. Код:
Handle CreateSpring(double torrad, double inrad,int elements,int segments,int vitki,double shagvitka){ предлагать решать sin(x)=x-x^3/3!+x^5/5!-x^7/7!... до полного самоудвлетворения не надо :) http://alglib.sources.ru/? |
Ответ: Имитация водной поверхности.
Цитата:
|
Ответ: Имитация водной поверхности.
Я это знаю. И наличие в теле функции нескольких синусов и косинусов, какбэ намекает на это :)
|
Ответ: Имитация водной поверхности.
ну попробуй для остального тогда поюзать XNA математику.
поставляется вместе в directx sdk |
Ответ: Имитация водной поверхности.
Код:
void sincos(float a, float &s, float &c) Код:
float sinx, cosx; |
Ответ: Имитация водной поверхности.
А как значение разделяются? В смысле присваиваются?
Осознал как :) Кстати Цитата:
|
Ответ: Имитация водной поверхности.
|
Ответ: Имитация водной поверхности.
Цитата:
То не смотря на эту строку в самом начале:#include <stdio.h> Оно мне пишет: "error: 'sprintf_s' was not declared in this scope|" А при sprintf(console, 256, "fps: %d", xGetFPS()); error: invalid conversion from 'int' to 'const char*' и error: initializing argument 2 of 'int sprintf(char*, const char*, ...)'| в виде Цитата:
Мой перевод в аргб, тупо работает :) Цитата:
|
Ответ: Имитация водной поверхности.
Изучи Bitwise Operators, для смещения по битам при сложении чисел, а то эти умножения на 16777216 или 65536, просто ужасны..
|
Ответ: Имитация водной поверхности.
okey
Цитата:
Какая интересная функция :) Цитата:
|
Ответ: Имитация водной поверхности.
|
Ответ: Имитация водной поверхности.
xProjectedZ() Нужно только для вывода значения от команды xCameraProject2D ()?
При xCameraProject() туда тоже пишется какоето значение чуть меньшее 1 если точка перед камерой. Что это за значение? Средствами хорса я вообще могу получить данные из буфера глубины? |
Ответ: Имитация водной поверхности.
Цитата:
получить для обработки на ЦПУ? крайне не рекомендую это делать т.к. гонять збуфер из видеопамяти в оперативку будет офигительно снижать фпс. |
Ответ: Имитация водной поверхности.
Я просто хочу спроецировать позицию вертекса на экран и узнать видима ли эта вершина или нет. Если видима то в области рядом с полученными координатами нарисовать синий или красный квадратик и все :(.
Пока пришла идея сравнивать нормаль и вектор от точки до позиции камеры и рисовать если угол меньше равен 90. Но если в сюрфейсе есть изгиб то будут рисоваться и те вершины которые не видимы. |
Ответ: Имитация водной поверхности.
используй occlusion queries. вроде бы они уже есть в ксорсе... спроси Сквида.
|
Часовой пояс GMT +4, время: 11:25. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot