|
|
|
Тестовое задание от AlternativaPlatform
|
|||
|---|---|---|---|
|
#18+
Есть такая компания AlternativaPlatform , послал резюме, выслали тестовое задание. Мы ознакомились с Вашим резюме и Ваш профессиональный опыт нас заинтересовал. Для кандидатов на должность java-программист у нас предусмотрено тестовое задание, которое мы Вам предлагаем выполнить. Задание ---------- Необходимо реализовать простой серверный 3D движок MMO-игры (без визуального представления). Движок загружает трехмерную сцену и позволяет определять пересечение заданных лучей с геометрией (т.н. трассировка лучей). Луч задается точкой и вектором направления, нужно определить пересечение луча с первым объектом. Треугольники - двусторонние, то есть луч пересекается с треугольником с любой стороны. Количество объектов в сцене 1000 - 100 000, требуется эффективно трассировать большое количество лучей в реальном режиме времени. Сцена состоит из объектов, каждый из которых состоит из треугольных граней. Задается сцена в виде xml (простой xml-пример и xml-схема прикреплены к письму). Запущенный движок принимает на stdin строки вида: rayId;originX,originY,originZ;directionX,directionY,directionZ Пример: 1;1,-0.5,5;0,0,-1 2;1,1,1;1,1,1 3;-1,-0.5,5;0,0,-100 Результат выдается на stdout в виде: rayId:objectName Если пересечений нет, поле objectName не заполняется. Пример вывода: 1:pyramid 2: 3:pyramid Ошибки выводятся в stderr, формат свободный. Требуется решение на Java в виде запускаемого jar-файла, исходный код. На вход передается имя файла со сценой: java -jar engine.jar scene.xml Оцениваются алгоритм решения, производительность, качество исходного кода. Приветствуются unit-тесты, многопоточное решение, использование maven. ----------------- Я его провалил. В том числе и из-за того, что не получил ответов на уточняющие вопросы, так что будете устраиваться и главный тамашний прогер не будет отвечать - долбите в емейл HR-манагера, а то так же пролетите :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 15:41:09 |
|
||
|
Тестовое задание от AlternativaPlatform
|
|||
|---|---|---|---|
|
#18+
А ну и ответ, конечно: К сожалению, Вами было допущено несколько ошибок. Одна из основных ошибок - вольная трактовка задания. Несмотря на то, что грань пересечения определить по заданию не требовалось, попадание луча в bound-сферу вовсе не гарантирует пересечения луча с объектом. Кроме того, сам алгоритм поиска пересечения со сферой написан неверно. Например, перепутаны origin и direction. :-( Есть еще ряд недочетов. Неприятно, конечно, но ничего не поделать. Вообще это первое тестовое задание у меня. Они все требуют погружения в тематику процесса, с которым предстоит работать или все-таки проверяются знания языка, методов и приемов? Ну и вообще как вам такое задание? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 15:45:41 |
|
||
|
Тестовое задание от AlternativaPlatform
|
|||
|---|---|---|---|
|
#18+
NixicОдна из основных ошибок - вольная трактовка задания. Вам это ещё в предыдущей теме говорили, что какое-то странное у вас задание. В этой теме задание абсолютно понятное даже без наводящих вопросов. В вашей предыдущей теме понять что именно требуется очень сложно. NixicОни все требуют погружения в тематику процесса, с которым предстоит работать или все-таки проверяются знания языка, методов и приемов? "Погружения"??? Это самые базовые основы 3D графики. Ни о каком погружении речи не идёт. Задача сводится к нахождению пересечения плоскости и вектора. Вроде, школьный курс. Нужно только оптимизировать алгоритм для эффективного перебора массива объектов. Nixic Ну и вообще как вам такое задание? :) Нормальное. Ищут человека с пониманием хоть каких-то основ 3D. Но если они какую-то новую сиситему делают с рендерингом 3D на Java сервере, то это, конечно, странновато. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 15:55:06 |
|
||
|
Тестовое задание от AlternativaPlatform
|
|||
|---|---|---|---|
|
#18+
Ладно понятно. С 3d до данного тестового задания не работал, ну и получается, что и не буду) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 16:29:39 |
|
||
|
Тестовое задание от AlternativaPlatform
|
|||
|---|---|---|---|
|
#18+
NixicА ну и ответ, конечно: Ответили, так что конторе плюс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 16:36:17 |
|
||
|
Тестовое задание от AlternativaPlatform
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНо если они какую-то новую сиситему делают OFF продукт у них (3D на веб) очень достойный. И конкурентов у них нет, либо по пальцам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 16:42:40 |
|
||
|
Тестовое задание от AlternativaPlatform
|
|||
|---|---|---|---|
|
#18+
Petro123продукт у них (3D на веб) очень достойный. Я в курсе. Но здесь речь идёт о серверном обсчете сцены на Java. У меня например с наскока возникает вопрос, а не будет ли это всё эффективнее обсчитываться на CUDA. Паралельность здесь должна быть отличная. Всё как раз и упирается в количество ядер. Petro123И конкурентов у них нет, либо по пальцам. По пальцам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 16:46:37 |
|
||
|
Тестовое задание от AlternativaPlatform
|
|||
|---|---|---|---|
|
#18+
Погуглив по инетику, наткнулся на этот тред. Точно такое же задание я выполнял почти три недели назад. Задание на самом деле было простое. На собеседовании сказали, что справился вроде как хорошо, но лично я остался недоволен своей реализацией. В любом пути, вот задание на битбакете, может, пригодится https://bitbucket.org/kaliy/fsraytracer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2013, 20:54:28 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38136472&tid=2129794]: |
0ms |
get settings: |
21ms |
get forum list: |
26ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
65ms |
get topic data: |
21ms |
get forum data: |
5ms |
get page messages: |
100ms |
get tp. blocked users: |
3ms |
| others: | 323ms |
| total: | 578ms |

| 0 / 0 |
