Salamander 0 Posted January 14 · Report post Есть специалисты в области 3D? На видео кубик, в коде я включил использование при визуализации Z-буфера. Первые кадры визуализируются нормально, потом же кубик постепенно "растворяется". Скажу сразу - нормали у меня от балды (не понял пока, как расчитывать их), это заметно по тому, как по разному освещаются полигоны одной грани, но мне пока терпимо. Так вот, а могут ли неправильные нормали давать такой эффект? Или это только проблемы Z-буфера? Или еще чего-то? https://cloud.mail.ru/public/DGUX/TZoRw7stw Пардон, правильное видео тут https://cloud.mail.ru/public/4h2M/DeoFPhWme Quote Ответить с цитированием Share this post Link to post Share on other sites
Salamander 0 Posted Saturday at 07:47 PM (edited) · Report post Поборол таки и Z-буфер и нормали.... Непонятным пока остается то что запись через DMA2D идет нормально, а вот через *(__IO uint32_t*)(adr + (x + y * 1024)*3)=color- с артефактами.... Пытаюсь теперь интегрировать этот код не в основную программу, а внутрь функций toochGFX - странные проблемы.....Тут уже вопросы к знатокам KEIL файл dsp3d.c - добавлен в проект #include <dsp3d.h> - добавлено в main.c Все работает. Беру другой файл, сгенерированный системой touchgfx - mainscreenview.cpp добавляю в него #include <dsp3d.h> вызываю в тексте dsp3D_renderGouraud(dsp3dModel2) (просто одна из функций файла dsp3d.c) Проект компилируется, но не линкуется Error: L6218E: Undefined symbol dsp3D_renderGouraud(float*) (referred from mainscreenview.o). Как так? Функция видна в одном месте проекта, но не видна в другом, хотя в обоих местах библиотека подключена одинаково.... Edited Saturday at 07:47 PM by Salamander Quote Ответить с цитированием Share this post Link to post Share on other sites
GenaSPB 0 Posted Saturday at 09:59 PM · Report post #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ и #ifdef __cplusplus } #endif /* __cplusplus */ в 3д хедер. Quote Ответить с цитированием Share this post Link to post Share on other sites