Programming Memoirs

3D (depth) composition of CUDA ray traced images with OpenGL rasterized images using CUDA Driver API

Depth composition of CUDA ray traced image with OpenGL rasterised object transformation gizmos

Ray tracing is a great method of generating synthetic images. It has many benefits over traditionally used (e.g. in computer game) rasterization. Ray tracing stays great up to the moment when you need to render e.g. a line segment placed in your 3D space (which is potential occluded by other 3D objects).

Why would you want to ray trace a line or a line segment? Say you want to create some kind of transformation gizmo for you 3D objects which blends nicely into the scene, or a bounding box depicting the boundaries of an object, or include wire frame of meshes in your ray traced scene, or …  There are many potential uses.

You cannot just mathematically test for camera ray vs. line segment collision and expect the line segment to appear on the ray traced rendering. Chance of a camera ray colliding a line segment are too slim for the line segment to be visible.

You can try simulating a line by drawing a thin cylinder, or an ‘x’ made of 2 quads. But this is far from an elegant solution. Additionally, your ‘line’ stops being a mathematical line, as it suddenly has a width. Thus, it becomes thicker closer to the camera, and thinner further away from it (considering you use perspective projection).

Fortunately there is a solution for drawing lines in ray traced content. The solution involves using some some kind of rasterization based renderer, such as OpenGL to draw the lines (or any objects) separately from the ray tracing pass and then performing a 3D composition of the two images.  The problem becomes even more interesting if you obtain the ray traced image using CUDA and CUDA Driver API.

CUDA and OpenGL interoperability using CUDA Driver API

Before we compose CUDA ray traced content with OpenGL rasterised content we need to obtain the former. If you’re a CUDA programmer you know that CUDA does not posses any native graphics output and You have to manually take care of displaying the generated data. One of the solutions for this is to write pixel data into a OpenGL Pixel Buffer Object (PBO), copying the content of PBO to an OpenGL texture, and rendering a quad textured using this texture into the viewport. Fortunately for us CUDA and OpenGL interoperability is quite robust and this can be done quite easily, even when using lower-level CUDA Driver API.

// general initialisation
init_CUDA_and_OpenGL();
set_up_camera(camera);

GLuint pbo; // Pixel buffer object
GLuint tex; // Texture
unsigned int width = 512; // horizontal render resolution
unsigned int height = 512; // vertical render resolution

// Init PBO
glGenBuffersARB(1, &pbo);
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, pbo);
glBufferDataARB(GL_PIXEL_UNPACK_BUFFER_ARB, width*height*sizeof(GLubyte)*4, 0, GL_STREAM_DRAW_ARB);
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0);

// Init Texture
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glBindTexture(GL_TEXTURE_2D, 0);

// Allocate CUDA graphic Resource (Notice that I'm using Driver API function calls)
CUgraphicsResource * cuda_pbo_resource = (CUgraphicsResource*) malloc(sizeof(CUgraphicsResource));
cuGraphicsGLRegisterBuffer(cuda_pbo_resource, // returns pointer to the CUDA resource
 pbo, // we pass here the OpenGL resource
 CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD); // Flag to aid optimisation

Rendering pass #1 — Ray tracing in CUDA

We render our scene (only solid objects, i.e. no lines etc.) using ray tracing. We store the raw pixel data in a PBO mapped as CUDA resource.
Note that PBO resource has to be unmapped from CUDA for OpenGL to be able to reliably access it. Thus we map the PBO resource to CUDA only for the time of ray tracing.

// map PBO resource
cuGraphicsMapResources(1, cuda_pbo_resource, 0); //mapping is only temporary

// get pointer in CUDA memory space for to the resource
CUdeviceptr d_pbo; // CUDA pointer through which the mapped graphics resources may be accessed
size_t num_bytes; //size of memory which may be accessed from that pointer
cuGraphicsResourceGetMappedPointer(&d_pbo, &num_bytes, *cuda_pbo_resource); // the d_pbo will be passed to rendering kernel

// Start ray tracing kernel
start_CUDA_ray_tracing_kernel(d_pbo, num_bytes); // render to PBO. Pass the pointer to the memory space where the data is to be saved

// unmap PBO resource
cuGraphicsUnmapResources(1, cuda_pbo_resource, 0);

After the PBO is filled with data by CUDA kernel we copy the content of the PBO to an OpenGL texture. On current hardware this step takes less than a milisecond for a 24 bits per pixel with a 512×512 resolution, thus it’s quite fast. Alternatively. You could attempt to render from CUDA directly to OpenGL texture memory space.


// copy from PBO to texture
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, pbo);
glBindTexture(GL_TEXTURE_2D, tex);  // bind our texture!
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, 0); // copy data
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0); // unbind PBO

Displaying CUDA rendered content with OpenGL

We can now render the texture onto a quad which is filling the viewport (using orthogonal projection).


// select matrix mode
glMatrixMode(GL_PROJECTION); // we select to  work with projection matrix stack
glLoadIdentity(); // make sure the there is nothing on the stack

glOrtho(0,1, 0,1,
0,             // zNear
999.0f);    // zFar

// clear color and depth buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDisable(GL_DEPTH_TEST); // we dont need it right now

// draw binded textured to a quad filling the viewport
glEnable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
	glTexCoord2f(0, 0); glVertex2f(0, 0);
	glTexCoord2f(1, 0); glVertex2f(1, 0);
	glTexCoord2f(1, 1); glVertex2f(1, 1);
	glTexCoord2f(0, 1); glVertex2f(0, 1);
glEnd();

glDisable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, 0);  // unbind texture

Rendering pass #2 — Rasterisation with OpenGL

We render the whole 3D scene (solid object only) once more, this time using OpenGL. You would probably want to switch the view mode from orthogonal to perspective projection with the same parameters as you used in your ray tracer (i.e. camera position, FOV, camera ‘look at’ point). I recommend setting the perspective manually using glFrustum() as it allows to set the camera parameters in a similar manner as you have probably used them in the CUDA kernel for ray tracing.

Note, that now we want to render the scene only to the OpenGL depth buffer — set you color buffer channel’s masks to false, and have depth testing enabled. Also, we will not need any OpenGL lights, textures, fog etc. — have them disabled.  As we are rasterizing only depth information this additional rendering pass is quite fast even for complex scenes.


// set perspective to the same as in the ray tracing pass
GLdouble fl_left = camera->plane_height;    // width of left
GLdouble fl_right = -camera->plane_height; // width of right (note the MINUS)
GLdouble fl_top = camera->plane_width;	// width of top
GLdouble fl_bottom = -camera->plane_width; // width of bottom (note the MINUS)
GLdouble zNear = camera->plane_distance;  // near clipping distance
GLdouble zFar = camera->plane_distance + 100; // far clipping distance

glFrustum(fl_left, fl_right, fl_bottom, fl_top, zNear, zFar);

gluLookAt(
 // camera position
 camera->origin.x,
 camera->origin.y,
 camera->origin.z,
 // look_at is stored as a normal vector, thus we add it to the camera position to determine a point in space where to look
 camera->origin.x + camera->look_at.x,
 camera->origin.y + camera->look_at.y,
 camera->origin.z + camera->look_at.z,
 // camera up direction
 camera->up.x,
 -camera->up.y,
 camera->up.z);

// render only to depth buffer
glColorMask(GL_FALSE,GL_FALSE,GL_FALSE,GL_FALSE); // we dont want to render to color buffer
glEnable(GL_DEPTH_TEST); // it is important to be enabled now

// Render the meshes in the scene to depth buffer only (do not render lines yet)
render_scene_objects_with_OpenGL();

Now, we want to enable color mask, and while having the depth testing still on, we rasterize remaining objects (lines, points etc.) to the color and depth buffers of OpenGL. However we can choose to also rasterize any additional solid objects at this point, basically any OpenGL scene!

glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); // we now want to render colors
render_lines_and_misc_stuff();

As the depth buffer already contains scene depth information, rasterized object and ray traced objects will seem to occlude each other in a manner which you would expect. :-) You can also achieve a partial occlution by CUDA object (transparency effect), but first rasterizing the misc. OpenGL objects partly transparent with GL_DEPTH_TEST disabled, and later rendering them fully opaque with depth testing enabled.

Oh, don’t forget to swap buffers if you were using double buffering!

Limitations

The major limitation of this method is the obvious fact that the lines (or any misc OpenGL rendered content) present behind translucent object (which in ray tracing refract light) won’t appear refracted. Same goes for reflections. Fortunately, for transformation gismos, bounding boxes etc. this is not really a problem. It might be even desirable.

Additional resources

You might also want to check this resource for more on depth composition of images in OpenGL.

More on PBOs can be found here and here.

Triers CUDA ray tracing tutorial — a great tutorial with source code available.

Hope this helps.

25 ResponsesLeave one →

  1. Браво, ваша мысль великолепна


    И что бы мы делали без вашей великолепной идеи поделки интересные, интересная или [url=http://www.biz-plan.ru/forum/view_profile.php?UID=54082]сайт[/url] интересный человек
    [url=http://www.kaminsoft.ru/forum/user/143199-ixynycapa.html]по ссылке[/url]
    [url=http://testimonyhaven.com/index.php/forum/user/24424-odegyni]на странице[/url]
    [url=http://tamtour.org.ua/index.php?option=com_k2&view=itemlist&task=user&id=125872]тут[/url]
    [url=http://doubledubs.com/UserProfile/tabid/82/userId/13421729/Default.aspx]тут[/url]
    [url=http://bsnrussia.ru/index.php?option=com_k2&view=itemlist&task=user&id=37087]на этом сайте[/url]
    [url=http://fieldofbattle.ru/modules.php?name=Forums&file=viewtopic&p=325067#325067]на странице[/url]
    [url=http://howto.rpg.by/index.php?title=Intexrelax]на странице[/url]
    [url=http://amk-motion.ru/node/1398]сайт[/url]
    [url=https://filbert.pro/communication/forum/messages/forum5/topic78/message78/?result=new#message78]продолжение[/url]
    [url=http://phraevan.com/modules.php?name=Forums&file=viewtopic&p=185#185]там[/url]
    [url=http://z-rodniki.ru/forum/messages/forum16/topic361/message1563/?result=new#message1563]источник[/url]
    [url=http://www.mda.org.tw/modules/profile/userinfo.php?uid=15383]на этом сайте[/url]
    [url=http://1apple.ru/communication/forum/user/16130/]источник[/url]
    [url=http://library.psu.kz/index.php?option=com_kunena&view=topic&catid=2&id=168950&Itemid=128&lang=rus#169094]там[/url]
    [url=http://sedalink.ru/forum/?PAGE_NAME=message&FID=1&TID=3875&MID=40334&result=new#message40334]источник[/url]

    Reply
  2. респект


    Полностью разделяю Ваше мнение. Это отличная идея. Готов Вас поддержать. мемы интересные, хентай интересный или [url=http://souzsadovodov.su/forum/dobro-pozhalovat/3438-prostitutki]на этом сайте[/url] музеи интересные
    [url=http://library.psu.kz/index.php?option=com_kunena&view=topic&catid=2&id=167905&Itemid=128&lang=rus#168049]на странице[/url]
    [url=http://crtdu-kras.ru/communication/forum/user/3525/]на этом сайте[/url]
    [url=http://soft-m.ru/communication/forum/index.php?PAGE_NAME=profile_view&UID=60819]на этом сайте[/url]
    [url=http://faberkoch.com/groups/%d0%bf%d1%80%d0%be%d1%81%d1%82%d0%b8%d1%82%d1%83%d1%82%d0%ba%d0%b8-190001120/]на этом сайте[/url]
    [url=http://ksusha.spb.ru/forum/thread59435-1.html#70742]продолжение[/url]
    [url=http://mthermshop.com/comment/html/?985.html&page=]по ссылке[/url]
    [url=http://omnimed.ru/forum/index.php?PAGE_NAME=profile_view&UID=63208]здесь[/url]
    [url=http://mytechsupport.com.au/index.php/forum/welcome-mat/366261#366288]здесь[/url]
    [url=http://eniseyseti.ru/ru/discussion/feature-requests/%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%B8%D1%82%D1%83%D1%82%D0%BA%D0%B8]источник[/url]
    [url=http://www.arstech.ru/support/forum/view_profile.php?UID=56564]здесь[/url]
    [url=http://mail.vzletim.aero/forum/messages/forum25/topic4160/message7366/?result=new#message7366]сайт[/url]
    [url=http://p.zenio.ru/story/prostitutki]источник[/url]
    [url=http://coffeemag.com.ua/communication/forum/messages/forum4/topic168/message4276/?result=new#message4276]тут[/url]
    [url=http://torgi.imc-bel.ru/forum/messages/forum2/topic134/message139/?result=new#message139]сайт[/url]
    [url=http://comunidadchevy.com/modules.php?name=Journal&file=display&jid=4902]здесь[/url]

    Reply
  3. Я считаю, что Вы не правы. Пишите мне в PM, пообщаемся.


    На мой взгляд, это интересный вопрос, буду принимать участие в обсуждении. Я знаю, что вместе мы сможем прийти к правильному ответу. учиться интересно, интересная мелодрама а также [url=http://yjhani.inplus21.com/xe2/?mid=collect&document_srl=1340972]здесь[/url] читать интересное
    [url=http://slepushkino.ru/index.php?subaction=userinfo&user=exyputo]на странице[/url]
    [url=http://www.kozodoi.ru/forum/user/87423/]тут[/url]
    [url=http://mukachevo-rada.gov.ua/index.php/component/kunena/3-suggestion-box/221-usluhy-khakera#221]там[/url]
    [url=http://energoventmash.ru/forums.php?m=posts&q=246&n=last#bottom]здесь[/url]
    [url=http://niigrafit.org/communication/forum/messages/forum3/topic194/message1701/?result=new#message1701]на странице[/url]
    [url=http://jurist-str.ru/forum/uslugi-hakera-0]на странице[/url]
    [url=http://www.rissr.ru/forum/thread3.html#3]здесь[/url]
    [url=http://unichance.ru/index.php/forum/razdel-predlozhenij/793-uslugi-khakera#794]на этом сайте[/url]
    [url=http://www.kemoko.su/forum/user/106273/]тут[/url]
    [url=http://www.ramelia.ru/communication/forum/index.php?PAGE_NAME=message&FID=1&TID=186&MID=189&result=new#message189]тут[/url]
    [url=http://protejazamediul.ro/index.php/forum/protejeaza-medul/98679#98694]на странице[/url]
    [url=http://legenda93.ru/forum/viewtopic.php?f=4&t=4885]источник[/url]
    [url=http://www.orion-26.ru/index.php?option=com_k2&view=itemlist&task=user&id=170745]источник[/url]
    [url=http://www.turboline.ru/forum/messages/forum1/topic2469/message4091/?result=new#message4091]источник[/url]
    [url=http://samarthsugar.com/kunena/7-third-forum/94915-%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8-%D1%85%D0%B0%D0%BA%D0%B5%D1%80%D0%B0.html#97074]здесь[/url]

    Reply
  4. Безвкусица какая то


    Как вариант, да скороговорки интересные, интересно или [url=http://rivkakolton.co.il/index.php?option=com_k2&view=itemlist&task=user&id=351582]там[/url] интересный праздник
    [url=http://oes-komitet.ru/forum/thread405-1.html#444]продолжение[/url]
    [url=http://routes.in.ua/tema/%d1%81%d0%b5%d0%ba%d1%81-%d0%b2%d0%b8%d0%b4%d0%b5%d0%be/]тут[/url]
    [url=http://social.kvarks.com/forums/topic/77/-/view/post_id/80]там[/url]
    [url=http://malmsteen.net/seks-video]здесь[/url]
    [url=http://websitemarketingdesign.com/UserProfile/tabid/61/userId/65240/Default.aspx]источник[/url]
    [url=http://auto-scan.ru/users/azewumit]сайт[/url]
    [url=http://www.curellamarmi.it/index.php?option=com_k2&view=itemlist&task=user&id=929726]сайт[/url]
    [url=http://fava.kermancity.ir/index.php?option=com_kunena&view=topic&catid=3&id=131&Itemid=167]там[/url]
    [url=http://www.vivilegno.it/index.php?option=com_k2&view=itemlist&task=user&id=394176]тут[/url]
    [url=http://www.harmonicnutrition.com/index.php?option=com_k2&view=itemlist&task=user&id=465280]на этом сайте[/url]
    [url=http://angelsnursing.com.au/index.php/forum/6-services-required/59617]по ссылке[/url]
    [url=http://www.kenaniadvocates.com/index.php?option=com_k2&view=itemlist&task=user&id=433457]тут[/url]
    [url=http://niklabs.com/forums/topic/%d1%81%d0%b5%d0%ba%d1%81-%d0%b2%d0%b8%d0%b4%d0%b5%d0%be/]источник[/url]
    [url=http://otradny24.ru/forum/messages/forum16/topic10264/message13640/?result=new#message13640]по ссылке[/url]
    [url=http://www.foodbytesforum.net/index.php?option=com_kunena&func=profile&userid=21536]тут[/url]

    Reply
  5. поржал !!


    можно было бы и без мата.. интересные сиськи, курсы интересные или [url=http://inked-radio.com/modules.php?name=Forums&file=viewtopic&p=4577#4577]здесь[/url] вк интересно
    [url=http://gderabotaem.ru/company/domiki-dlya-kolodcev]здесь[/url]
    [url=http://www.powerprint.it/modules.php?name=Forums&file=viewtopic&p=3003&sid=d3977c75171c9567c7a408417b574ada#3003]по ссылке[/url]
    [url=https://psyera.ru/blog/post/domiki-dlya-kolodcev_10863]на этом сайте[/url]
    [url=http://www.dinolonzano.com/blog/okajal/]тут[/url]
    [url=http://mukachevo-rada.gov.ua/index.php/component/kunena/3-suggestion-box/220-domyky-dlia-kolodtsev#220]здесь[/url]
    [url=http://sbgg.ru/forum/?PAGE_NAME=profile_view&UID=100397]здесь[/url]
    [url=http://blok55.ru/domiki-dlya-kolodcev]по ссылке[/url]
    [url=http://astom.kiev.ua/forums/users/isuwysy/]сайт[/url]
    [url=http://www.amore-pizza.ru/communication/forum/user/150231/]здесь[/url]
    [url=http://www.itstimetotalkday.org/node/71736]тут[/url]
    [url=http://bdsm.nsk.ru/groups/domiki-dlya-kolodcev/]тут[/url]
    [url=http://mtas.ru/forum/messages/forum18/topic1294/message7817/?result=new#message7817]здесь[/url]
    [url=http://www.lithhof.org/index.php/forum/3-suggestion-box/4033]там[/url]
    [url=http://soft-m.ru/communication/forum/index.php?PAGE_NAME=profile_view&UID=60650]продолжение[/url]
    [url=http://reddeaprendizaje.com/index.php?option=com_k2&view=itemlist&task=user&id=170571]продолжение[/url]

    Reply
  6. Я извиняюсь, но, по-моему, Вы ошибаетесь. Предлагаю это обсудить. Пишите мне в PM, пообщаемся.


    И что в таком случае делать? интересные данетки, роман интересный а также [url=http://www.arstech.ru/support/forum/view_profile.php?UID=56123]здесь[/url] интересные коллекции
    [url=http://www.foodbytesforum.net/index.php?option=com_kunena&func=profile&userid=21240]тут[/url]
    [url=http://women-doma.ru/forum?func=view&catid=15&id=9216#9216]там[/url]
    [url=http://anesise.ru/news/2300]по ссылке[/url]
    [url=http://www.osz-orpund.ch/modules.php?name=Your_Account&op=userinfo&username=usutyhe]там[/url]
    [url=http://myboot.ru/index.php?option=com_content&view=article&id=6201&catid=34http://myboot.ru/index.php?option=com_myblog&show=2018-08-07-20-15-20.html&Itemid=]источник[/url]
    [url=http://poliklinika.by/user/ovini]источник[/url]
    [url=http://orlenok.izmuroma.ru/forum/thread1231.html#1737]здесь[/url]
    [url=http://comunidadchevy.com/modules.php?name=Journal&file=display&jid=4858]там[/url]
    [url=http://rusakov-club.com/index.php/forum/razdel-predlozhenij/18182-ekzolotsin#18237]по ссылке[/url]
    [url=http://alternatio.org/index.php?option=com_k2&view=itemlist&task=user&id=104486]тут[/url]

    Reply
  7. Как специалист, могу оказать помощь. Вместе мы сможем найти решение.


    Мне кажется это хорошая идея. Я согласен с Вами. земфира интересно, интересные данетки и [url=http://colab.di.ionio.gr/index.php?option=com_k2&view=itemlist&task=user&id=936874]источник[/url] это интересно
    [url=http://www.blucobalto.it/index.php?option=com_k2&view=itemlist&task=user&id=788476]продолжение[/url]
    [url=http://rosnaladka.ru/communication/forum/messages/forum3/topic963/message12232/?result=new#message12232]тут[/url]
    [url=http://alternathistory.com/content/gardenin-0]источник[/url]
    [url=http://kpaglobal.com/index.php?option=com_k2&view=itemlist&task=user&id=522019]по ссылке[/url]
    [url=http://baptist.uz.ua/index.php?option=com_k2&view=itemlist&task=user&id=44980]тут[/url]
    [url=http://www.studia16.ru/index.php/component/kunena/welcome-mat/3954-gardenin]сайт[/url]
    [url=http://polymega.com/forums/users/ypyquci/]источник[/url]
    [url=http://itpgrad.ru/user/2288]источник[/url]
    [url=http://ladies-news.ru/index.php/forum/2--/2964-gardenin#2966]сайт[/url]
    [url=http://forest.ru/forum/messages/forum19/topic613/message1364/?result=new#message1364]на этом сайте[/url]

    Reply
  8. Скажите мне, пожалуйста – где я могу найти больше информации по этому вопросу?


    В этом что-то есть. Теперь всё получается, большое спасибо за помощь в этом вопросе. интересные календари, интересное тв и [url=http://metecol.com.ua/modules.php?name=Your_Account&op=userinfo&username=ucojupi]тут[/url] рассказ интересный
    [url=http://salon.arva.biz/forums/topic/%d0%b1%d0%b0%d0%b4%d1%8b/]на странице[/url]
    [url=http://medkol.cv.ua/index.php?option=com_k2&view=itemlist&task=user&id=579909]источник[/url]
    [url=http://www.tyresinleeds.co.uk/component/kunena/suggestion-box/22769.html#22846]там[/url]
    [url=https://anenii-noi.md/index.php?option=com_k2&view=itemlist&task=user&id=1608004]там[/url]
    [url=http://ludmila-tour.com/index.php?option=com_k2&view=itemlist&task=user&id=244286]источник[/url]
    [url=http://howto.rpg.by/index.php?title=БАДы]сайт[/url]
    [url=http://polikarbonmarket.com/blog/%D0%93%D0%B5%D0%BD%D1%80%D0%B8.html]тут[/url]
    [url=http://www.litkonkurs.ru/topic/bady/]по ссылке[/url]
    [url=http://www.ckt.su/modules.php?name=Your_Account&op=userinfo&username=yvorupoda]сайт[/url]
    [url=http://laureate.or.tz/index.php?option=com_k2&view=itemlist&task=user&id=445764]источник[/url]

    Reply
  9. Утро вечера мудренее.


    попадаются очень даже веселенькие смайлики интересные, перевод интересный и [url=http://premium-re.com/blog/ebanabo.html]здесь[/url] интересные приложения
    [url=http://ilinsk.ru/forum/messages/forum1/topic2467/message8351/?result=new#message8351]источник[/url]
    [url=http://yjhani.inplus21.com/xe2/?mid=collect&document_srl=1340909]сайт[/url]
    [url=http://escu.com.ua/forums/topic/guarchibao/]здесь[/url]
    [url=http://forum.ozz.tv/viewtopic.php?f=16&t=2244]на этом сайте[/url]
    [url=http://forum.chertenok.ru/profile.php?mode=viewprofile&u=8166]на странице[/url]
    [url=http://otradny24.ru/forum/user/46700/]продолжение[/url]
    [url=http://yuddha-yoga.ru/forum/index.php?PAGE_NAME=message&FID=3&TID=280&MID=402&result=new#message402]здесь[/url]
    [url=http://sodexonation.com/profile/ubatocom]тут[/url]
    [url=https://mambada.ru/memberlist.php?mode=viewprofile&u=4968]на этом сайте[/url]
    [url=http://users.atw.hu/sajprobaoldalam/modules.php?name=Journal&file=display&jid=10812]по ссылке[/url]

    Reply
  10. Вот те на!


    Говорите прямо. войти в darknet, darknet сайти а также [url=http://niigrafit.org/communication/forum/messages/forum5/topic177/message1296/?result=new#message1296]here[/url] википедия darknet
    [url=http://www.korabli.eu/users/aneki/blog/darknet]here[/url]
    [url=http://dongsomboon.go.th/modules.php?name=Forums&file=viewtopic&p=1050#1050]here[/url]
    [url=http://shabunin.info/forum/messages/forum1/topic3830/message28363/?result=new#message28363]here[/url]
    [url=http://www.behimba.com/es/Forum/welcome-mat/49474-darknet#49950]here[/url]
    [url=http://inked-radio.com/modules.php?name=Forums&file=viewtopic&p=4541#4541]here[/url]
    [url=http://www.giovaniconnection.it/index.php?option=com_k2&view=itemlist&task=user&id=3673826]here[/url]
    [url=http://rabotyaga.net/forum/thread190481-1.html#196168]here[/url]
    [url=http://federciclismocalabria.com/index.php/forum/settore-amatoriale/38302-darknet#38534]here[/url]
    [url=http://smartmews.hospitalathome.it/index.php?option=com_k2&view=itemlist&task=user&id=635313&lang=it]here[/url]
    [url=http://telhasbetel.com.br/index.php?option=com_k2&view=itemlist&task=user&id=1205237]here[/url]

    Reply
  11. Я пожалуй промолчу


    Есть конечно пару красивых моментов, но я ожидал большего!!! интересным, интересные сценарии и [url=https://xn----dtb2ahcakckkfj.xn--p1ai/viewtopic.php?f=19&t=10865]по ссылке[/url] интересные ногти
    [url=http://domdruzei.ru/index.php?showtopic=33185]источник[/url]
    [url=http://www.shout.ru/en/your-profile/userprofile/aruhigi.html]продолжение[/url]
    [url=http://theater-impulse.ru/forum/thread250117.html#250163]продолжение[/url]
    [url=http://siamsi.ru/communication/forum/messages/forum5/topic69/message69/?result=new#message69]на странице[/url]
    [url=http://4pera.ru/forum/user/66792/]там[/url]
    [url=http://torzhok.tverlib.ru/maynkraft-skiny]по ссылке[/url]
    [url=https://mambada.ru/viewtopic.php?f=7&t=1272]источник[/url]
    [url=http://wiki.oldsaratov.ru/index.php?title=Майнкрафт скины]здесь[/url]
    [url=http://www.mda.org.tw/modules/profile/userinfo.php?uid=15315]источник[/url]
    [url=http://blok55.ru/maynkraft-skiny]по ссылке[/url]

    Reply
  12. Я готов вам помочь, задавайте вопросы. Вместе мы сможем прийти к правильному ответу.


    I consider, that you are mistaken. I can prove it. Write to me in PM, we will communicate. free online sex game sites, card game online sex и [url=http://mathhelpplanet.com/viewtopic.php?f=55&t=60490]here[/url] hardcore sex flash game
    [url=http://new.kcrconstruction.net/index.php?option=com_k2&view=itemlist&task=user&id=361176]here[/url]
    [url=http://sofa.mediasphereindia.com/index.php?option=com_k2&view=itemlist&task=user&id=37666]here[/url]
    [url=http://www.adeat-onlus.org/index.php?option=com_kunena&view=topic&catid=2&id=29380&Itemid=178#29382]here[/url]
    [url=http://jpfeinmann.com/index.php?option=com_k2&view=itemlist&task=user&id=715715]here[/url]
    [url=http://www.fantasiapetroli.it/index.php?option=com_k2&view=itemlist&task=user&id=419435]here[/url]
    [url=http://horizontalvias.com.br/index.php?option=com_k2&view=itemlist&task=user&id=536025]here[/url]
    [url=http://www.trilogysupply.com/index.php?option=com_k2&view=itemlist&task=user&id=212795]here[/url]
    [url=http://chefdons.com/index.php?option=com_k2&view=itemlist&task=user&id=368369]here[/url]
    [url=http://bluenet.bluemena.com/index.php?option=com_k2&view=itemlist&task=user&id=193900]here[/url]
    [url=http://supplyconceptsinc.com/index.php?option=com_k2&view=itemlist&task=user&id=6902198]here[/url]

    Reply
  13. Час от часу не легче.


    I think, that you are mistaken. I can prove it. Write to me in PM, we will discuss. tentacle sex flash game, adventure flash game sex а также [url=http://amprom.org/index.php?option=com_k2&view=itemlist&task=user&id=2678651]here[/url] game sex online
    [url=http://www.luciodisimone.it/modules.php?name=Journal&file=display&jid=7524]here[/url]
    [url=http://geek-university.com/forums/topic/game-sex/]here[/url]
    [url=http://www.tuscancountrystore.com/index.php?option=com_k2&view=itemlist&task=user&id=745191]here[/url]
    [url=http://www.coccoliomc.it/index.php?option=com_k2&view=itemlist&task=user&id=994399]here[/url]
    [url=http://egascapitalltd.com/index.php?option=com_k2&view=itemlist&task=user&id=845519]here[/url]
    [url=http://documentsellers.com/index.php?option=com_k2&view=itemlist&task=user&id=205355]here[/url]
    [url=http://personalnetzwerk.net/modules.php?name=Journal&file=display&jid=4663]here[/url]
    [url=http://www.seiconsulting.it/index.php?option=com_k2&view=itemlist&task=user&id=171060]here[/url]
    [url=http://www.dawndavidsonart.com/index.php?option=com_k2&view=itemlist&task=user&id=255116]here[/url]
    [url=http://vets.webstarz101.com/index.php?option=com_k2&view=itemlist&task=user&id=143816]here[/url]

    Reply
  14. Да, действительно. Это было и со мной. Давайте обсудим этот вопрос. Здесь или в PM.


    Браво, эта блестящая мысль придется как раз кстати музей интересный, интересные истории а также [url=http://salon.arva.biz/forums/topic/%d0%bc%d0%be%d1%80%d0%b5-%d1%81%d0%be%d0%b2%d0%b5%d1%82%d0%be%d0%b2/]здесь[/url] интересные кухни
    [url=http://www.progettopaeseeau-oman.it/index.php?option=com_k2&view=itemlist&task=user&id=2071189&lang=it]здесь[/url]
    [url=http://www.kozodoi.ru/forum/user/85458/]на странице[/url]
    [url=http://www.brigantesrl.it/it/?option=com_k2&view=itemlist&task=user&id=948599]здесь[/url]
    [url=http://homenetwork.ru/forum/messages/forum2/topic48/message53/?result=new#message53]источник[/url]
    [url=http://auto-scan.ru/users/owiryg]здесь[/url]
    [url=http://delovoy-les.ru/forum/thread49785.html#49802]источник[/url]
    [url=http://zema.su/blog/more-sovetov-0]по ссылке[/url]
    [url=http://www.prtong.go.th/modules.php?name=Forums&file=viewtopic&p=3023#3023]по ссылке[/url]
    [url=http://xn----ptbkbbefh0i.xn--p1ai/index.php/component/k2/item/4376]на странице[/url]
    [url=http://warafanapharmaceuticals.com/warafana/UserProfile/tabid/57/UserID/116577/Default.aspx]на этом сайте[/url]

    Reply
  15. глянем


    И я с этим столкнулся. Можем пообщаться на эту тему. интересные косички, интересный картинки и [url=http://web-management.ru/communication/forum/user/112945/]сайт[/url] интересный квест
    [url=http://pobedavsude.ru/remont-ayfona-0]на этом сайте[/url]
    [url=http://sbgg.ru/forum/?PAGE_NAME=profile_view&UID=99037]здесь[/url]
    [url=http://www.arstech.ru/support/forum/view_profile.php?UID=55978]здесь[/url]
    [url=http://xn--80aae1dvd.xn--p1ai/forum/?PAGE_NAME=message&FID=9&TID=209&MID=1820&result=new#message1820]тут[/url]
    [url=http://xn--b1aerikqn2e.xn--p1ai/communication/forum/user/15073/]по ссылке[/url]
    [url=http://klinikazabota.ru/forum/suggestion-box/2255-remont-ajfona/]источник[/url]
    [url=http://xn--80aa2bni.xn--p1ai/%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82-%D0%B0%D0%B9%D1%84%D0%BE%D0%BD%D0%B0]на этом сайте[/url]
    [url=http://iphoneremont.ru]источник[/url]
    [url=http://portal.do.mrsu.ru/forum/?PAGE_NAME=profile_view&UID=8199]здесь[/url]
    [url=http://xn--xo-t94g.com/comment/html/?1502.html&page=]сайт[/url]

    Reply
  16. Я думаю, что Вы ошибаетесь. Могу отстоять свою позицию.


    Бутафория выходит интересное алиэкспресс, инстаграм интересный или [url=http://myboot.ru/index.php?option=com_content&view=article&id=6148&catid=34http://myboot.ru/index.php?option=com_myblog&show=2018-07-31-23-26-58.html&Itemid=]тут[/url] интересный факты
    [url=http://e-rentier.ru.velkom-setan.ru/Forum/topic.php?forum=27&topic=4394]тут[/url]
    [url=http://fashion-id.ru/forum/index.php?PAGE_NAME=profile_view&UID=37751]тут[/url]
    [url=http://www.amore-pizza.ru/communication/forum/messages/forum5/topic557/message2363/?result=new#message2363]тут[/url]
    [url=http://komsomol.gubkin.ru/communication/forum.php?PAGE_NAME=profile_view&UID=27401]тут[/url]
    [url=http://energoventmash.ru/forums.php?m=posts&q=210&n=last#bottom]тут[/url]
    [url=http://nexus-motors.ru/communication/forum/messages/forum4/topic324/message1671/?result=new#message1671]тут[/url]
    [url=http://xn--059-eddot8cge.xn--p1ai/forum/messages/forum2/topic415/message181/?result=new#message181]тут[/url]
    [url=http://alphagroup.ru/forum/?PAGE_NAME=profile_view&UID=51936]тут[/url]
    [url=http://ci360.ru/forum/user/110227/]тут[/url]
    [url=http://astom.kiev.ua/forums/users/avusysex/]тут[/url]

    Reply
  17. Замечательно, очень ценная информация


    Абсолютно с Вами согласен. В этом что-то есть и мысль отличная. интересные звуки, танцы интересные или [url=http://tribunakchr.ru/user/cagaki/]тут[/url] интересные фанфики
    [url=http://futzal73.org/torgovaya-lavka/402-snaryazhenie-vratarya-v-tom-chisle-i-forma.html]тут[/url]
    [url=http://raznoe.besaba.com/user/cagaDat/]тут[/url]
    [url=http://riverstreetsav.com/index.php?option=com_kunena&view=topic&catid=3&id=67836&Itemid=151]тут[/url]
    [url=http://web-dle.adr.com.ua/user/cagaFab/]тут[/url]
    [url=http://www.303e.net/home.php?mod=space&uid=785254]тут[/url]
    [url=http://dmproductora.com.mx/index.php/forum/suggestion-box/135545-kolodec#135520]тут[/url]
    [url=http://zasvety.net/user/cagasa/]тут[/url]
    [url=http://www.pbsgameteam.com/groups/kolodec-104632919/]тут[/url]
    [url=http://www.shopandshop.ru/users/125564/]тут[/url]
    [url=http://hdmspb.ru/shop/dvd_tehnika/dvd_pleery/akai_vn-87/#comments]тут[/url]

    Reply
  18. По моему мнению Вы допускаете ошибку. Предлагаю это обсудить. Пишите мне в PM, пообщаемся.


    Жаль, что сейчас не могу высказаться – опаздываю на встречу. Освобожусь – обязательно выскажу своё мнение по этому вопросу. интересные предметы, интересная комедия и [url=http://www.kozodoi.ru/forum/user/84621/]тут[/url] интересные кинофильмы
    [url=http://seguitel.com/index.php/forum/sub-category-2/67847]тут[/url]
    [url=http://www.calicris.ro/index.php?option=com_k2&view=itemlist&task=user&id=775562]тут[/url]
    [url=https://filbert.pro/communication/forum/messages/forum4/topic32/message32/?result=new#message32]тут[/url]
    [url=http://pobedavsude.ru/lechenie]тут[/url]
    [url=http://www.uzaze.com/east-african-journal/categories/listings/2018-07-26-00-08-20]тут[/url]
    [url=http://energoventmash.ru/forums.php?m=posts&q=192&n=last#bottom]тут[/url]
    [url=http://anesise.ru/news/2272]тут[/url]
    [url=http://personalnetzwerk.net/modules.php?name=Journal&file=display&jid=5286]тут[/url]
    [url=http://atromitosmet.gr/index.php?option=com_k2&view=itemlist&task=user&id=255946]тут[/url]
    [url=http://u4elsat.ukrbb.net/viewtopic.php?f=221&t=1944]тут[/url]

    Reply
  19. Latonyaeling

     /  2018/03/28

    This message is posted here using XRumer + XEvil 4.0

    XEvil 4.0 is a revolutionary application that can break almost any antibot captcha.
    Captcha Solution Google (ReCaptcha-1, ReCaptcha-2), Facebook, BING, Hotmail, Yahoo,
    Yandex, VKontakte, Captcha Com – and over 8400 other types!

    You read this – it means it works! ;)
    Details on the official website of XEvil, there is a free demo version.

    Check YouTube video “XEvil ReCaptcha2″

    Reply
  20. [url=http://hshmp3.ru/?track=Magic Slim & The Teardrops][img]http://hshmp3.ru/images/songs.png[/img][/url] matafaka скачать акмаль холходжаев лейла акмал окутала ты моя ендшипиль міягі скачать нико нико ни скачать песню слим гусли despacito minus mp3 марат яруллин кемнэр сине шулай яратыр big shaq man s not hot скачать 320 [url=http://hshmp3.ru/?track=

    Reply
  21. [url=http://exittalks.com/][img]http://exittalks.com/img/music-online.png[/img][/url]
    heading up high armin van buuren mp3 песни рома смайл скачать скачать песню из тихоокеанского рубежа 2 cheat codes feat demi lovato no promises download драго против ноу лимита первый бит минусовка я раняю запад у песня twenty one pilots stressed out скачать на русском sevgi iztirobi музики и песни слухати різдвяна радість анжела джа запретная любовь
    [url=http://exittalks.com/]питерские крыши скачать[/url]

    Reply

Leave a Reply