Хорошее начало... чем его надо собирать?В общем, какой компилятор будешь пользовать? Какую IDE?
Блин, забыл предупредить... у меня видюхи нет с поддержкой Open CL Может лучше сначала потренироваться на рендере для процессора?
Возник вопрос №1: Как собираешься данные из Блендера передавать в рейтресер? Это будет прямой доступ к .blend загруженному в оперативную память или реэкспорт в какой-то свой формат перед рендером?
#include <python3.5m/Python.h>#include <iostream>#include <string>int main(int, char **) { PyObject *mName, *pModule, *pFunc; PyObject *pArgs, *pValue, *sResult; Py_Initialize(); PyRun_SimpleString("import sys"); PyRun_SimpleString("sys.path.append(\".\")"); PyRun_SimpleString("from bimport import hello"); mName = PyUnicode_FromString("bimport"); char fName[] = "hello"; pModule = PyImport_Import(mName); pFunc = PyObject_GetAttrString(pModule, fName); char fileName[] = "/home/leonid/workspace/blender/files_blend/test_so.blend"; PyObject *pyFileName = PyBytes_FromString(fileName); pArgs = PyTuple_New(1); PyTuple_SetItem(pArgs, 0, pyFileName); pValue = PyObject_CallObject(pFunc, pArgs); double cTuple[3]; for (int i = 0; i < 3; i++){ sResult = PyTuple_GetItem(pValue,i); double cResult = PyFloat_AsDouble(sResult); cTuple[i] = cResult; } std::cout<<cTuple[0]<<std::endl; std::cout<<cTuple[1]<<std::endl; std::cout<<cTuple[2]<<std::endl; Py_Finalize(); return 0;}
Вот ещё один рейтресер на C++ https://github.com/iquadrat/raytracer
>> Это большой проект. ... а с нуля слабо?! но не просто #include #@уяк-#@уяк, а с постановки-с задачи ...
Вот тебе ещё инфы для размышлений (формат .blend файла)http://www.atmind.nl/blender/mystery_ot_blend.htmlhttp://www.atmind.nl/blender/blender-sdna-249.html
... вот то что требуется сделать оно для чего и в чём цель? ...